Mysql全文搜索精确短语问题

时间:2011-02-26 14:15:35

标签: mysql full-text-search

在mysql中使用全文搜索我想要准确的短语:

"romantic dinner" to be found.

但我也希望每个单词都有类似的同义词:

例如,可以找到“浪漫晚餐”(我们的语言有很大问题,每个单词都有8个结尾)...

我试过了:

+"romantic (dinner dinners)" and
"romantic +(dinner dinners)"

但似乎没有任何结果......是否有可能在精确搜索中进行一些逻辑OR?

更新:将其作为一个遗产问题:有没有办法在全文搜索中将一些逻辑运算符置于完全匹配(“”)?

3 个答案:

答案 0 :(得分:0)

它只是部分问题,但mysql中有一个soundex()函数,它将给定的字符串转换为soundex表示。 Similars字符串应具有相同的soundex表示,因此它可能是一个开始。

希望这有帮助。

答案 1 :(得分:0)

SELECT field_name FROM table_name WHERE MATCH(field_name) AGAINST('romantic* dinner*' IN BOOLEAN MODE)...

绝对可以使用+和 - 来进一步细化您的结果 参考:http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

答案 2 :(得分:0)

如果'“roman * dinn *”对您不起作用,可能是时候查看像Solr:http://lucene.apache.org/solr/这样的内容,这样可以进行更复杂的搜索,并且可能已经为您提供了一个词干分析器语言。