2010-12-16 10 views
2

Sphinxエンジンが(通常のMySQLではコンマやピリオドのような)区切り文字で動作するかどうかを知りたいと思います。私の質問は、FULLTEXT検索でMATCH操作を実行するときに、MySQLをデフォルトで扱う際に問題があり、少なくとも私はそれらを使用しないようにする衝動から来ています。それらの区切り文字を他の文字で置き換えて、良い結果を得ることを余儀なくされることを好まないでしょう。Sphinxデリミタ

申し訳ありません私は何か愚かなことを言っていますが、私はSphinxやその他の補完的な(?)検索エンジンを経験していません。私は

"Passat 2.0 TDI" 

で検索を実行する場合

あなたの例を与えるために、デフォルトでMySQLは「0」がに短すぎる区切り文字としてこの場合は期間を特定し、「2」以来となりデフォルトでは単語と見なされますが、結果はちょっと混乱します。

スフィンクス(または他の検索エンジン)で扱いやすいのですか?私は提案に開放されています。

これはおそらく500,000以上の可能なレコードを持つ大規模なプロジェクトです(まったく些細なことではありません)。

乾杯!

答えて

1

具体的なsphinx indexcharset tableを指定すると、区切り文字になる文字を効果的に制御できます。

文字を文字セットテーブルから除外すると、効果的に区切り文字として機能します。文字セットテーブル(U + 0020のようなスペースですら)で指定すると、もはやデリミタとして機能せず、トークン文字列の一部になります。

各インデックス(1つ以上のsphinx data sourcesを使用)は、柔軟性のために異なるcharsetテーブルを持つことができます。

注:の場合、の1文字の単語が必要な場合は、それぞれのスフィンクスインデックスのmin_word_lenを指定できます。

+0

私はすでにそれを考え出し、別の解決策を選択しましたが、それはあなたが述べたものです。 – yoda

0

これはおそらくthe documentationの最善のセクションです。スフィンクスはフルテキストエンジンなので、フレーズの扱い方やパスの方法について非常に調整が可能です。

+0

私の質問には答えません。返信ありがとう。 – yoda