如何处理如下的查询:
select ... from ... where match(field1) against('someA') and match(field2) against('someB') limit 50
如果条件匹配(field1)返回的结果('someA')& match(field2)对('someB')都很大,整个查询都会非常非常慢。
解决方案?
答案 0 :(得分:1)
您可以为两列FULLTEXT
和field1
创建另一个field2
索引。然后使用以下方法一次搜索两个搜索字词:
MATCH(field1, field2) AGAINST ('+someA +someB') IN BOOLEAN MODE
当然,这可能会找到field1
包含两个搜索字词的行,而field2
则不包含这两个搜索字词。我不确定您的应用的确切要求。
答案 1 :(得分:0)
也许Sphinx可以有效地解决这个问题。 Sphinx提供强大的全文搜索功能。我不确定这是不是你想要做的,但听起来很接近。