1

自分がやりたいことは不可能だと思い始めていますが、これを試してみようと思いました。

Solr 3.5 を実行しています。

現在、次の 2 種類の検索があります。

  1. スコア フィールド内の 2 点間の計算された距離を返す基本的な空間クエリ。

Solr ログからのサンプル クエリ:

?fl=*,score&sort=score+asc&start=0&q={!func}geodist()&sfield=coordinates&pt=59.2363514,18.092783&version=2
  1. 多数のフィールドでフリー テキスト クエリを許可する 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 クエリを「関連性」、距離、またはその他のフィールドでソートできるようにしたいので、ブーストによって与えられたスコアはソートに興味深いものになる可能性がありますが、返される必要はありません。

4

2 に答える 2

2

私の理解が正しければ、Solr 応答に関数の結果が必要です。SOLR-2444の問題は、あなたが探しているものだと思います.fl疑似フィールド、関数などをパラメーターに含めることができます.唯一の問題は、トランクでのみコミットされているため、現在では利用できないことです. Solr リリース、いずれも今後の 3.6 リリースには含まれません。4 のリリースを待つ必要がありますが、それほど時間はかからないと思います。おそらく、最後に成功した Jenkins ビルドのスナップショットを試してみることができます。

于 2012-03-28T20:11:40.930 に答える
1

疑似フィールドが Solr 4+ で利用可能になり、これを行うことができます。

http://localhost:8983/solr/collection1/browse?q=*:*&rows=1000&wt=xml&pt=37.763649,-122.24313&sfield=store&fl=dist:geodist()

たとえば、このリクエストでは、指定されたポイントまでの各エントリの距離を含むフィールド「dist」を返すことができます。

于 2013-03-04T02:33:11.153 に答える