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