2016-08-03 9 views
0

私はタイトルのあるテーブルを持っています。私はそのタイトルが完全に単語のサブセットで構成されているのを見たいだけです。MySQLの全文検索では、特定の単語のみを含む文書を検索するにはどうすればよいですか?

例えば

SELECT title 
FROM my_titles_table WHERE MATCH (title) AGAINST ('word1 word2 word3 ... wordN' IN NATURAL LANGUAGE MODE) 

私は単語1ワード2ワード3 ... wordNまたはそれらのサブセットで構成されているすべてのタイトルを見つけたいが、それ以外の言葉。例えば

私のクエリは私の言葉として「あなたのドラゴンを訓練する方法」であるならば、私は「ダンジョン「を訓練するためにあなたのドラゴン」ではなく「ドラゴン」や「あなたのドラゴンを訓練する」などのタイトルを見つけたいです"ドラゴンズ"という言葉は私の質問に「ダンジョン」という言葉がないからです。

答えて

0

この機能はフルテキスト検索ではサポートされていないと思われます。実際に、これを行うための強引な方法を理解することは難しいです。ここで

は1つの強引な方法である:

where trim(replace(replace(replace(title, $word1, ''), $word2), ''), $word3, '')) = '' 

「パイナップル」は「パイナップル」と一致しますので、これは、まさに完璧ではありません。

Hmmmm。 。 。

where title like concat('^(', replace('word1 word2 word3', ' ', '|'), 
          '[ ]*)+$) 

試合は、文字列の最初と最後に開始しており、その間の言葉がすべて一致している必要があり、次のとおりです。正規表現で別の選択肢があります。

私が知る限り、このようなクエリをスピードアップする方法はありません。

関連する問題