2

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

4

1 に答える 1

2

You could try using FunctionQuery. There are pre-built functions available or you could write a custom Function Query.

Since you mention city, I am tempted to point you to the Geohash function, but am not sure if this is what you are looking for.

于 2013-03-12T16:03:08.287 に答える