在mysql中使用全文搜索我想要准确的短语:
"romantic dinner" to be found.
但我也希望每个单词都有类似的同义词:
例如,可以找到“浪漫晚餐”(我们的语言有很大问题,每个单词都有8个结尾)...我试过了:
+"romantic (dinner dinners)" and
"romantic +(dinner dinners)"
但似乎没有任何结果......是否有可能在精确搜索中进行一些逻辑OR?
更新:将其作为一个遗产问题:有没有办法在全文搜索中将一些逻辑运算符置于完全匹配(“”)?
答案 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/这样的内容,这样可以进行更复杂的搜索,并且可能已经为您提供了一个词干分析器语言。