FilterQuery(fq)を条件付きで実行することは可能ですか?
つまり、特定の条件が真の場合にのみ実行します。
例:
solrデータベースに複数の都市とその地理的位置があります。そして、私はそれらが重要であるかどうかをさらに保存します。ここで、ジオロケーションの特定の範囲内のすべての都市にクエリを実行するだけでなく、常に重要な都市を返したいと思います。
またはSQLのような構文で(私はそれが恐ろしくて正しいSQLでさえないことを知っていますが、それは私のニーズを説明しています):
select *
from cities
having distance(cityname, 30, 30) or important(cityname)
今のところ、そのようなものは見つかりませんでした。カスタムフィルタークエリでそれを行うことはできますが、やりたくありません:)。
前もって感謝します。
編集:
私がそれを使用したい現実世界のようなもの:
{!geofilt pt=30.2,23.0 sfield=locationCoordinates d=20 cost=20} or nationWide:true
EDIT2:
解決:
map(query({!geofilt pt=20.3,30.2 sfield=locationCoordinates d=1}, -1), -1, -1, nationWide:true)
このシナリオでは、負の値を使用しても問題ありません:http: //www.solrtutorial.com/solr-search-relevancy.html