Geodist()の逆数によるsolr関連スコアを高める方法()
-
11-10-2019 - |
質問
Solr 4を実装して使用しました。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 ...
どんな助けも感謝します。ありがとう!
解決
ブースト関数の後、クエリの主要部分を指定する必要があります。
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関数の引数として照会するには、lat/long値と空間フィールドを指定する必要があります。
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
他のヒント
私がより良い結果を得ることを追加するために...
{!boost b=recip(geodist(),1,100,10)}
何がこれを引き起こすのかわかりませんが、Solrがレシピとブーストのパラメーターに関するもう少し情報を提供したいと思います。現在のドキュメント 欠けています。