自分がやりたいことは不可能だと思い始めていますが、これを試してみようと思いました。
Solr 3.5 を実行しています。
現在、次の 2 種類の検索があります。
- スコア フィールド内の 2 点間の計算された距離を返す基本的な空間クエリ。
Solr ログからのサンプル クエリ:
?fl=*,score&sort=score+asc&start=0&q={!func}geodist()&sfield=coordinates&pt=59.2363514,18.092783&version=2
- 多数のフィールドでフリー テキスト クエリを許可する dismax クエリ。
Solr ログからのクエリの例:
mm=1&d=100.0&sfield=coordinates&qf=field1^5.0+fields2^3.0&defType=edismax&version=2&fl=*,score&start=1&q=monkeyhopper&pt=59.2363514,18.0927830000&fq={!geofilt}}
最初のクエリを dismax クエリに置き換えたいのですが、応答で計算された距離を取得する必要があります。はい、プログラムで距離を計算できますが、Solr が既に行っているので、これを行う必要はありません。
dismax クエリを「関連性」、距離、またはその他のフィールドでソートできるようにしたいので、ブーストによって与えられたスコアはソートに興味深いものになる可能性がありますが、返される必要はありません。