我正在尝试匹配Lucene中的多个单词,就像我在MySQL中所做的那样。
这比我想象的要难:
用PHP编写: 我对完美匹配的查询是:
$words = explode($words, " ");
(text:(' . implode(" ", $words) . ')
但如果文字是“我写的一堆字”,那么在我写完所有内容之前它就不会匹配
有没有办法强迫Lucene像MySQL一样表现得像“%a bunc%”并检索空洞短语?
提前致谢
编辑:
我没有直接使用Lucene,我使用Solr作为REST服务。所以我正在寻找解决这个问题的“普通语法”,如:select?q = :,如果我有很多单词,查询是:(全选)在文本字段中,如前所述,我没有找到任何方式将它们视为一个独特的单词。 如果它是一个独特的单词,我可以做“text:(beginningOfW *)”,它会找到它, 如果是多个单词,如果我写“text :( W *开头)”,它只会找到以W开头的单词,而忽略其他单词。
答案 0 :(得分:0)
是的,Lucene是全文搜索引擎API。我想你正在寻找WildCardQuery:
Term term = new Term("whichField", "searchString");
Query query = new WildcardQuery(term);
Hits hits = indexSearcher.search(query);