Solr 3.6 を使用している既存の検索システムを改善しています
次の関数を使用して検索結果を後押ししようとしています:
{!boost b=recip(sub(1,floor(strdist("someText",myField,jw))),1000000,1,1)}searchText
- searchText - ユーザーが検索するテキスト。
- myField - カスタム インデックス付きドキュメントのフィールド。値は空または空の文字列ではない可能性があります。
つまり、この関数は、 myFieldの値がsomeTextと等しくないすべての検索結果の1000001スコアで除算します。このようにして、指定された myFieldの値を持つ結果が、元のスコアの順に並べられます。
このように、フィールドはそこにあり、値はフィールドに存在しますが、結果のスコアも分割され、結果はどこか深いところにあります...
私が使用する場合:
fq=myField:[* TO *]
Solr は、フィールドの値が空の文字列ではない結果を除外します。ということで、認識され...
別の従来の文字列フィールドがあります。そのフィールドを使用して関数を適用すると、すべてが正常に機能します。しかし、自分のフィールドを使用すると失敗します。
何が間違っているのか、何か考えはありますか? 何を探すべきですか?
助けてください。私はまだ成功せずに多くの時間を費やしてきましたが、Solr は初めてで、これまでのところこの問題を解決できません...
ありがとうございました!