lucene场指数有线现象

lucene场指数有线现象,lucene,Lucene,当我向文档添加字段时,如下所示: doc.add(new Field("name","Jack",Field.Store.YES,Field.Index.ANALYZED)); 当我搜索名字:杰克时,我能找到目标 但是,如果我使用Field.Index.NOT_analysis而不是Field.Index.analysis,程序将找不到名称:Jack,为什么 因为field.Index.NOT_analysis的字段也被索引了,我认为该字段是可以搜索的,但是为什么我找不到任何东西呢?应该可以。

当我向文档添加字段时,如下所示:

doc.add(new Field("name","Jack",Field.Store.YES,Field.Index.ANALYZED));
当我搜索名字:杰克时,我能找到目标

但是,如果我使用Field.Index.NOT_analysis而不是Field.Index.analysis,程序将找不到名称:Jack,为什么


因为field.Index.NOT_analysis的字段也被索引了,我认为该字段是可以搜索的,但是为什么我找不到任何东西呢?

应该可以。但是您的查询解析器可能使用一个分析器来对您的令牌执行一些操作(比如小写)。尝试在搜索时使用关键字分析器

或者,您可以自己构建查询:

Query q = new TermQuery(new Term("name", "Jack"));

谢谢,在analyzer从SimpleAnalyzer改为KeywordAnalyzer进行搜索后,它就可以工作了。修复了我的答案。你说得对,KeywordAnalyzer甚至比WhitespaceAnalyzer更好。