0

Solr 3.6 を使用している既存の検索システムを改善しています

次の関数を使用して検索結果を後押ししようとしています:

{!boost b=recip(sub(1,floor(strdist("someText",myField,jw))),1000000,1,1)}searchText
  1. searchText - ユーザーが検索するテキスト。
  2. myField - カスタム インデックス付きドキュメントのフィールド。値は空または空の文字列ではない可能性があります。

つまり、この関数は、 myFieldの値がsomeTextと等しくないすべての検索結果の1000001スコアで除算します。このようにして、指定された myFieldの値を持つ結果が、元のスコアの順に並べられます。

このように、フィールドはそこにあり、値はフィールドに存在しますが、結果のスコアも分割され、結果はどこか深いところにあります...

私が使用する場合:

fq=myField:[* TO *]

Solr は、フィールドの値が空の文字列ではない結果を除外します。ということで、認識され...

別の従来の文字列フィールドがあります。そのフィールドを使用して関数を適用すると、すべてが正常に機能します。しかし、自分のフィールドを使用すると失敗します。

何が間違っているのか、何か考えはありますか? 何を探すべきですか?

助けてください。私はまだ成功せずに多くの時間を費やしてきましたが、Solr は初めてで、これまでのところこの問題を解決できません...

ありがとうございました!

4

1 に答える 1