当我向这样的文档添加字段时:
doc.add(new Field("name","Jack",Field.Store.YES,Field.Index.ANALYZED));
当我搜索姓名时,我可以获得点击:杰克
但是,如果我使用Field.Index.NOT_ANALYZED而不是Field.Index.ANALYZED,程序找不到名称:Jack,为什么?
因为Field.Index.NOT_ANALYZED的字段也被索引,我认为该字段是可搜索的,但为什么我找不到任何东西?
答案 0 :(得分:0)
它应该工作。但是你的查询解析器可能使用了一个分析器,它对你的标记执行一些操作(比如小写)。尝试在搜索时使用KeywordAnalyzer。
或者,您可以自己构建查询:
Query q = new TermQuery(new Term("name", "Jack"));