Lucene查询匹配多个单词,如mysql的“LIKE%my string%”

时间:2013-11-22 10:35:27

标签: php mysql lucene

我正在尝试匹配Lucene中的多个单词,就像我在MySQL中所做的那样。

这比我想象的要难:

用PHP编写: 我对完美匹配的查询是:

$words = explode($words, " ");
(text:(' . implode(" ", $words) . ')

但如果文字是“我写的一堆字”,那么在我写完所有内容之前它就不会匹配

有没有办法强迫Lucene像MySQL一样表现得像“%a bunc%”并检索空洞短语?

提前致谢

编辑:

我没有直接使用Lucene,我使用Solr作为REST服务。所以我正在寻找解决这个问题的“普通语法”,如:select?q = ,如果我有很多单词,查询是(全选)在文本字段中,如前所述,我没有找到任何方式将它们视为一个独特的单词。 如果它是一个独特的单词,我可以做“text:(beginningOfW *)”,它会找到它, 如果是多个单词,如果我写“text :( W *开头)”,它只会找到以W开头的单词,而忽略其他单词。

1 个答案:

答案 0 :(得分:0)

是的,Lucene是全文搜索引擎API。我想你正在寻找WildCardQuery:

Term term = new Term("whichField", "searchString");
Query query = new WildcardQuery(term);
Hits hits = indexSearcher.search(query);