我使用Lucene允许用户搜索大量文档中的单词.Lucene似乎默认返回包含输入的任何单词的所有文档.
是否有可能改变这种行为?我知道'+'可以用来强制包含一个术语,但我想把它作为默认动作.
理想情况下,我希望功能类似于谷歌:' - '排除单词,'abc xyz'排除单词.
为了澄清 我还想到在查询中的所有空格中插入'+'.我只是想避免检测分组的术语(括号,引号等)并可能破坏查询.还有另一种方法吗?
Ada*_*ter 31
这类似于Lucene句子搜索问题.如果你有兴趣,这就是我回答这个问题的方法:
String defaultField = ...;
Analyzer analyzer = ...;
QueryParser queryParser = new QueryParser(defaultField, analyzer);
queryParser.setDefaultOperator(QueryParser.Operator.AND);
Query query = queryParser.parse("Searching is fun");
Run Code Online (Sandbox Code Playgroud)