4

データセットを検索するために、mysql の組み込みのブール型フルテキスト機能を使用しています。(MATCH... AGAINST 構文)。

MySql のデフォルトのストップワード リストにあるキーワードが結果を返さないという問題が発生しています。たとえば、「前」、「間」などです。

実行時にMySqlのストップワードを無効にする方法はありません(と思います)。また、共有サーバー (DreamHost) で Web サイトをホストしているため、ストップワードを無効にして MySQL を再コンパイルするオプションがありません。

上記の問題を回避する方法について誰か提案があるかどうか疑問に思っていますか? (VPSや専用システムへのアップグレードなし)

よろしくお願いいたします。

トラヴィス

4

2 に答える 2

3

私はこの問題を抱えており、この投稿に出くわすグーグル検索を行いました(1年以上後)私も共有ホストにいて、mysqlに設定されたストップワードに髪の毛を引っ張っていました。私にとって完璧に機能している回避策を見つけました。他の人にも役立つことを願っています。

このコマンドを使用してREGEXP、テーブル内の検索語を照合することもできます。

SELECT * FROM table WHERE column REGEXP 'searchterm'

どのように実装するかは、最初にMATCH AGAINST構文を実行することです。カウント = 0 の場合はREGEXP、ユーザーにより多くの結果を与える代わりに構文を実行します。ストップ ワードと最小の長さにより、結果がまったくないよりはましです。

于 2012-04-01T15:51:47.390 に答える
0

忘れてください。mysql フルテキスト設定の変更には再起動の
詳細が必要です - http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

動的列はNOとマークされていることに注意してくださいft_stopword_file

ただし、ホスティング サービス プロバイダーに確認しても問題はありません...

再起動した場合は、次を使用してテーブルのフルテキストを修復できます

mysql> REPAIR TABLE tbl_name QUICK;
于 2011-01-31T05:44:52.990 に答える