1

Sphinx と Thinking Sphinx を使用して顧客データベースを検索しています。顧客のメタデータ (電子メール、電話番号など) は複数のテーブルにまたがり、Sphinx は顧客などに関するすべてのメモにインデックスを付けます。私が抱えている問題は、検索用語で始まるテキスト フィールドを検索で最初に表示することです。つまり、「hods」を検索すると、次の順序で結果が返されます。

  • ホッズ
  • ホッズ
  • ホドソン
  • メソッド

つまり、優先順位を付ける必要があります (大まかにこの順序で):

  • フレーズの開始
  • 完全な単語
  • 単語の始まり

複合検索語 (例: "^hods | hods | hods* | *hods") を使用してこれを達成しようとしました。

このようなことで、適切な結果をすべて確実に見つけることができますが、ランク付け方法には影響しないようです!! ドキュメントにも有用なものが見つかりません!!

何か案は?これはSphinxで可能ですか?これが可能な他の検索ソリューションはありますか?

4

3 に答える 3

1

Sphinx 1.10 では、新しいランキング モードが導入されましSPH_RANK_SPH04た。

thinking-sphinxホームページには記載されていませんが、ランキングモードを設定できます。どのように行ったか正確には思い出せませんが、他の検索パラメーターの設定と非常によく似ていました。

于 2010-07-22T14:06:11.897 に答える
0

ThinkingSphinx を使用したことはありませんが、Lucene/Solr で常にクエリ用語をブーストしています。ほとんどの検索ツールには、同様のメカニズムがあるはずです。

于 2009-12-22T14:21:14.580 に答える
0
(e.g. "^hods | hods | hods* | *hods")

このクエリは結果を優先しません。上記のクエリは、何を取得するかを決定するだけです。

優先順位を付ける必要がある場合は、おそらくランキング モードまたは並べ替えモードを使用する必要があります。

于 2011-01-14T11:36:38.323 に答える