Location
タイプとして格納された一連の座標を持つ Solr インデックスがあります。このフィールドの値が null 以外のドキュメントを照会したいと考えています。
場所フィールドで NOT NULL チェックを実行するクエリ構文は何ですか?
Location
タイプとして格納された一連の座標を持つ Solr インデックスがあります。このフィールドの値が null 以外のドキュメントを照会したいと考えています。
場所フィールドで NOT NULL チェックを実行するクエリ構文は何ですか?
標準的な方法は次のとおりです。
fieldName:[* TO *]
''
Paige Cook が提案したように左側にa を使用することもおそらくうまくいくでしょうが、私は上記のようにそれを信頼していません. これは場所フィールドに対するものであるため、おそらく、この論理複合フィールドに対して、2 つの基礎となる実際のフィールドの 1 つに対してこれを行う必要があります。fieldName
それらは、ある種の数値接尾辞で始まり、終わります。Schema Browser を見て、実際の名前を確認してください。
ここで注意すべき重要な点は、このようなクエリは、このフィールドで完全なインデックス スキャンを実行するため、Solr が行うにはコストがかかるということです。多数の個別の場所フィールド値 (数千以上) がある場合、これは大きな問題です。フィルター クエリでこれを行うと、キャッシュされ、おそらく意味がありません。このクエリを高速に実行する場合は、インデックス時にブール フィールドにインデックスを付けて、このフィールドに値があるかどうかを示す必要があります。
これをクエリに追加できますfieldname:['' TO *]
。これは、NOT NULL チェックと同等です。
私は投稿からこれを得ました - Solr - Field Not Null Searches
位置フィールド (solr.LatLonType) の場合、次のフィルター クエリを使用します-fieldName:[-90,-180 TO 90,180]
(この範囲外の座標は無効です) 。