2016-04-04 10 views
0

フルテキスト検索の結果を改善したいと思います。FULLTEXTインデックスでMySQL検索を強化する

SELECT *, MATCH (winery) AGAINST ('chateau cheval blanc') AS score 
FROM usr_wines 
WHERE MATCH (winery) AGAINST ('chateau cheval blanc') 
ORDER BY score DESC 
... 

問題が示された結果であるが、このようなものです:

  • シャトー・シュヴァル・ブランプチシュヴァル
  • シャトー・シュヴァル・ブラン

私はMySQLを返し考える「シャトー・シュヴァル・ブランプチシュヴァル文字列の中に2つの "cheval"が見つかったので、もう1つの前に。 しかし、私にとっては、2番目の結果は最初のものの前に表示する必要があります。

"QUERY EXPANSION"と "BOOLEAN MODE"のような他のことを成功させてみました。私はまた、行動を変えるために検索に記号(+)を付けることができると読んでいます。

適切な動作を得るには、どんなヘルプも歓迎します。

答えて

1

http://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html

あなたはちょうどあなたが完全に一致する語句を望んでいることを示すために"でBOOLEAN MODEを使用する必要が 例:。

SELECT *, MATCH (winery) AGAINST ('"chateau cheval blanc"' IN BOOLEAN MODE) AS score 
FROM usr_wines 
WHERE MATCH (winery) AGAINST ('"chateau cheval blanc"' IN BOOLEAN MODE) 
ORDER BY score DESC 
+0

ちょうど完璧に動作感謝を!。 –

関連する問題