Lucene TermQuery和BooleanQuery区分大小写

时间:2017-01-29 00:47:29

标签: java text lucene text-analysis

我对Lucene比较陌生,并且自己尝试了几个例子。我注意到的一件事是TermQuery似乎寻找完全匹配(区分大小写),而如果我构造BooleanQuery具有相同的TermQuery,它会执行不区分大小写的搜索。更具体地说,如果我只是搜索:

new TermQuery(new Term("content", "sample_word"));

它不会将Sample_word(大写字母S)的文档视为匹配项。但是,如果我搜索以下内容:

Query booleanQuery = new BooleanQuery();
booleanQuery.add(new TermQuery(new Term("content", "sample_word")), Occur.MUST);

它确实认为它是一个匹配。为什么会这样?

我的猜测是,使用TermQuery时,没有默认的分析器可以启动,但是有BooleanQuery?是否有任何方法可以强制某些分析器与TermQuery一起使用?

0 个答案:

没有答案