2011-11-09 9 views
0

mysqlの全文検索を使用してかなり大きな記事データベースを検索しています。部分的に引用符で囲まれた文字列(mysql)を含む全文検索

「ジョン・スミス」を逮捕すると、「ジョン・スミス」と「逮捕」という記事は返されますが、「ジョン」と「逮捕」しかない記事は返されません。 "逮捕"しかない話

フルテキスト検索は文字列の引用符と他の言葉を同時に尊重しないようです。

私が試してみた:

MATCH(headline,byline,body,keywords) 
AGAINST('"John Smith" arrest' IN BOOLEAN MODE) 

MATCH(headline,byline,body,keywords) 
AGAINST('"John Smith" + arrest' IN BOOLEAN MODE) 

をそれだけでこのような何かをしても大丈夫でしょうか?

MATCH(headline,byline,body,keywords) 
AGAINST('John + Smith + arrest' IN BOOLEAN MODE) 

これはうまくいく可能性がありますが、完全に正確ではありません。

ありがとうございました。

答えて

2

は、フルテキスト検索は、ORを使用して条件を兼ね備えています。つまり、最初の例では、「arrest」という語句または「John Smith」という語句を検索しています。私はこの、その後、"+を組み合わせることができるかわからないが、動作しない場合は、この

MATCH(headline,byline,body,keywords) 
AGAINST('+"John Smith" +arrest' IN BOOLEAN MODE) 

を試してみてください

MATCH(headline,byline,body,keywords) 
AGAINST('+"John Smith" +arrest' IN BOOLEAN MODE) 
1

:プラス演算子を使用し、両方の用語を持つように返された行を必要とするために、べき

WHERE 
    MATCH(headline,byline,body,keywords) 
    AGAINST('"John Smith"' IN BOOLEAN MODE) 
AND 
    MATCH(headline,byline,body,keywords) 
    AGAINST('+arrest' IN BOOLEAN MODE) 

ドキュメントhttp://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

関連する問題