2012-03-19 17 views
0

私はモバイルアプリで結果を表示するための非常に高速なオートコンプリートソリューションを探しています。私はフルテキストインデックスソリューションとしてsphinxを使用していますが、インデックスが検索された後、結果をmysqlに尋ねる必要があるため、sphinxがオートコンプリート検索にとって最適なソリューションであれば問題ありません。より良い、より速いソリューションがありますか?スフィンクスでオートコンプリート検索

+0

私は質問の周りにいくつかの明快さを必要とします。ユーザーが入力してシス​​テムが用語を提案する機能を自動提案するのか、ユーザーが「マイクロ*」と入力して「マイクロ」で始まるものすべてを戻すワイルドカード検索を意味するのでしょうか? – Imraan

+0

こんにちはImraan、はいそれはsimmilarです。しかし、始まりの単語だけではありません。私もincludeで単語が必要です。 –

答えて

1

文字列属性を使用して、実際のテキストを保存できます。

その後、データベースにまったく戻る必要はありません。スフィンクスだけを照会することができます。スフィンクスは属性をメモリに保存します。そのため、実際のスフィンクスクエリの検索が著しく遅くなることはありません。

私の経験では、スフィンクスはオートコンプリートに適しています。

+0

こんにちはバリー、これを作る方法。私はこれほど多くを探しました。インデックスにキーワードを格納する方法と、idでmysqlに再度質問する必要がなく、キーワードを取得する要求によって私に例を示すことができますか? –

+0

実際には、文字列属性として列を定義するだけです。http://sphinxsearch.com/docs/current.html#conf-sql-attr-string(または文字列属性とフルテキストフィールドの両方)インデックスを作成すると、結果セットのデータが取得されます。結果がどうなっているのかわからない場合はprint_r()を試してください – barryhunter

1

スフィンクスはワイルドカード検索をサポートしています。パラメータ "enable_star"を見てください。 1に設定してsphinxを再起動すると、ワイルドカードを使って検索できるはずです。

スフィンクスdocsで確認してください。

単語に「マイクロ」が含まれている場合は、「マイクロ」の検索語句が必要です。

+0

こんにちは、私は有効な星を試しましたが、正確には1つの問題があります。私は私の設定で:min_word_len = 3 min_prefix_len = 1 enable_star = 1と '^'。$ query。 '*'を使ってクエリを実行すると動作しますが、結果に完全一致はありません。これを解決するには? –

1

あなたはスフィンクス2.0.2以降を実行している場合:

index_exact_words = 1 
関連する問題