1

私のプロジェクトの 1 つで Sphinx 検索を使用することを検討しているので、それに関連していくつか質問があります。

  1. SphinxSE および RT インデックスを使用する場合、SphinxSE テーブル内のすべての UPDATE または INSERT によってインデックスが更新されますよね? インデクサーなどを呼び出す必要はありませんか?
  2. タグ (ユーザーがドキュメントに入力したキーワード) とコンテンツの両方を検索して、タグの一致に関連性を高めることはできますか? 可能であれば、タグ検索を実装するにはどうすればよいですか (今では、逆インデックスのように別のテーブルに配置しています)
  3. フィラー属性については、SphinxSE テーブルにそれらの複製を貼り付けるか、mysql を使用して私が持っている通常のドキュメント テーブルからフィッターする方が良いですか?

前もって感謝します!

4

1 に答える 1

3

OK、ようやくスフィンクスの仕組みが理解できました。

  1. SphinxSE テーブルを直接 INSERT または UPDATE することはできません。代わりに、SphinxQL に (直接 sphinx デーモンに) 接続しているときに INSERT/REPLACE を使用します。
  2. 1.10 では、複数の全文検索可能なフィールドを追加できます。タイトル、タグ、コンテンツを追加しました。そして、タイトル、タグ、コンテンツに重みを与えるクエリは次のよう になります。SELECT SQL_NO_CACHE * FROM sphinx_docs WHERE query = 'a lot of keywords;weights=3,2,1;'; を使用してSQL_NO_CACHE、この結果をキャッシュしないように mysql に指示します。次の呼び出しでは、sphinx から返された行数を取得できないためです。 ( SHOW STATUS LIKE 'sphinx_total_found')

  3. sphinx にすべての並べ替え、フィッタリングを実行させ、mysql を使用して、より多くの情報が必要なテーブルを結合することをお勧めします。

さらに、sphinxse プラグインを mysql に追加しようと何度も試みましたが成功しませんでした (無限の make 待機時間)。そのため、SphinxSE ストレージ エンジンを含む MariaDB 5.2.4 に切り替えました。

于 2011-02-12T22:10:06.050 に答える