我试图使用MySQL的FTS搜索索引内容以查找某些关键字。对于我想要制作的内容,它需要文本中的一个或多个关键字,并且关键字必须是精确的字匹配。但是,如果关键字位于另一个单词的中间并不重要,例如,在搜索" STACK"时,它应该匹配:
我之前使用过以下方法:
SELECT ... FROM ... WHERE text LIKE '%keyword1%' OR LIKE '%keyword2%' OR LIKE '%keyword3%'
这将返回包含任何关键字的任何文本。然而,这几乎开始减慢所有内容,因为大多数索引内容都很大(存储在blob中),我有超过500行要编入索引。由于Like没有使用此方法的任何索引,我尝试使用以下内容转换为FTS:
SELECT ... FROM ... WHERE MATCH(text) AGAINST ('+keyword1 +keyword2 +keyword3' IN BOOLEAN MODE)
这对单个关键字有效,但是当输入多个关键字时,这会失败,因为带有+操作数NEEDS的FTS可以找到与给定单词匹配的内容。但是如果没有这些关键字,FTS会匹配模糊结果,而不是精确结果。我最终错过的内容最明确地包含关键字。
我可以使用哪些内容来获取包含一个或多个axact关键字的所有内容?
答案 0 :(得分:1)
尝试这样的事情:
SELECT * FROM table MATCH (text) AGAINST ('+"keyword1" +"keyword2"' IN BOOLEAN MODE)
答案 1 :(得分:0)
听起来您正在寻找类似以下内容的东西:
Line 29: 'answers' is not defined no-undef