2011-02-04 14 views
0

私は自動候補検索フィールドのためにthinking_sphinxを設定しようとしています。それぞれのキーを押すごとに、私のデータベース上でフィールドの現在のテキスト値をスフィンクス検索します。私はmin_infix_lenを3に設定しましたが、少なくとも3文字が入力されるまで、表示を開始したくありません。この問題は、複数単語のクエリで発生します。 match_mode =>:phraseを設定しているにもかかわらず、私が入力した新しい単語はそれぞれ、スフィンクス検索で別のキーワードとして扱われ、3のmin_infix_lenに従う必要があります。Rails thinking_sphinxファジー検索の問題

"Lorem Ipsum"私は "Lor"、 "Lore"、 "Lorem"についての自動提案を受けています。それから、 "Lorem I"と "Lorem Ip"の結果は得られません。それから私が "Lorem Ips"をヒットしたら再び結果を得ます。

どのような取引ですか?これが何でない場合:match_mode =>:フレーズは何のためですか?

答えて

0

私はかなり確信していますが、min_infix_lenはSphinxでインデックスデータを作成するときにのみ影響します。検索の際には全く適用されません。だから:min_infix_lenは各単語に適用され、フレーズには適用されません。

+0

オハイオ州の文字列を変換し、この方法により、Stringクラスを拡張することができます。私は、min_infix_lenを1に設定しenable_starを1に設定して、それを検索する前にアスタリスクをテキストフィールドの値に追加することで、私がしたいことを達成しました。 – herpderp

1

あなたはスター、検索文字列に1つ以上の単語

def to_star_search 
    "*#{self.strip.gsub(/ +/, '* *')}*" 
end