4

だから私はSolr4を実装し、うまく使用しました。Solr4は素晴らしいと言わざるを得ません。とにかく、距離でソートし、ジオフィルターを使用して結果を特定の領域に制限しました。ここでやりたいのは、距離の逆数で関連性スコアを上げることです。このページではそれについて説明していますが、その方法については説明していません(http://wiki.apache.org/solr/SpatialSearch)

次のことを試しましたが、エラーが発生します。

http://localhost:8983/solr/select/?q={!boost b=recip(geodist(), 1, 1000, 1000)}...

私が得るエラーは次のとおりです。

org.apache.lucene.queryParser.ParseException: Expected identifier at pos 27 str='{!boost b=recip(geodist(), 1, 10 in ...

どんな助けでもいただければ幸いです。ありがとう!

4

3 に答える 3

11

ブースト関数の後にクエリの主要部分を指定する必要があります。

q={!boost b=recip(geodist(),1,1000,1000)}foo:bar&...

距離の逆数によるブースティングのみに関心がある場合は、ワイルドカード クエリを使用できます。

q={!boost b=recip(geodist(),1,1000,1000)}*&...

...または関数クエリ パーサーを使用します。

q={!func}recip(geodist(),1,1000,1000)&...

geodist 関数の引数として、緯度/経度の値と空間フィールドを指定してクエリを実行する必要もあります。

q={!boost b=recip(geodist(50.1, -0.86, myGeoField),1,1000,1000)}foo:bar&...

...またはクエリ文字列パラメータとして分解:

q={!boost b=recip(geodist(),1,1000,1000)}foo:bar&sfield=myGeoField&pt=50.1,-0.86
于 2011-01-28T11:20:54.143 に答える
0

追加するだけで、より良い結果が得られます...

{!boost b=recip(geodist(),1,100,10)}

何が原因なのかはわかりませんが、Solr が recip と boost のパラメータについてもう少し情報を提供してくれることを望みます。 現在のドキュメントが不足しています。

于 2015-02-27T11:11:59.677 に答える