11

次のようなアイテムのリストがあります。

i = SearchQuerySet().models(Item)

の各アイテムにiは属性があり、price

価格情報がないものと範囲内のものを絞り込みたい

何かのようなもの

i.narrow('price:( None OR [300 TO 400 ] )')

どうすればそれができますか?

4

5 に答える 5

12

これを試して:

-(-price:[300 TO 400] AND price:[* TO *])

論理的には同じで、Solr で動作します。

于 2013-06-20T10:50:46.693 に答える
0

目的は、type:bike アイテムに画像がある場合は、タイプ別のブーストに基づいて、いくつかのアイテムをスコアでソートすることでした。結果は次のようになります。

  1. ボート
  2. イメージのあるバイク
  3. イメージのないバイク

これは私の最初のクエリアプローチでした: type:"car"^10000 OR type:"boat"^5000 OR (type:"bike" AND image-type:[* TO *])^100 OR type:"bike"^5(正常に動作します)

しかし、タイプ フィールドのない古いデータ項目を忘れてしまいました。は、次のように結果セットに含まれている必要があります。

  1. ボート
  2. イメージのあるバイク
  3. イメージのないバイク
  4. タイプのないすべてのアイテム

だから私は自分のクエリをに変更-type:[* TO *] OR type:"car"^10000 OR type:"boat"^5000 OR (type:"bike" AND image-type:[* TO *])^100 OR type:"bike"^5しましたが、結果はありませんでした。

だから私はこのスレッドを見つけて-(type:[* TO *] OR -type:"car"^10000 OR -type:"boat"^5000 OR -(type:"bike" AND image-type:[* TO *])^100 OR -type:"bike"^5、この回答に示されているようにクエリを )に変更しようとしましたhttps://stackoverflow.com/a/17211744/326905

しかし悲しいことに、すべてのアイテムが同じスコアです:(

于 2016-11-08T14:22:22.073 に答える