Lucene查询匹配多个单词,如mysql';s”;喜欢%my字符串%”;


Lucene Query to match multiple words like mysql's "LIKE %my string%"

我正在尝试在Lucene中匹配多个单词,就像在MySQL中一样。

这比我想象的要难:

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

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

但如果文本是"我写的一堆单词",在我写完所有之前,它不会匹配

有没有任何方法可以迫使Lucene的行为与MySQL的"%a-bunc%"完全一样,并检索漏洞短语?

提前感谢

编辑:

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

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

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