Apache Lucene搜索-关键字搜索失败-在

Apache Lucene搜索-关键字搜索失败-在,lucene,Lucene,我在java应用程序中使用ApacheLucene搜索。该查询建立在使用国家代码(通常表示为两个字母的单词,例如印度、美国、英国、英国等)搜索人名(字母表)的基础上 然而,问题出现了,当我尝试使用Alphabet=“Steve”和Country=“IN”的查询条件搜索值时,搜索查询结果没有值,即使记录存在,只有在选择Country(印度)时才有 您希望使用KeywordAnalyzer处理国家代码(不需要标记化或大小写/停止字折叠);对于人名,WhitespaceAnalyzer可能是一个不错的

我在java应用程序中使用ApacheLucene搜索。该查询建立在使用国家代码(通常表示为两个字母的单词,例如印度、美国、英国、英国等)搜索人名(字母表)的基础上

然而,问题出现了,当我尝试使用Alphabet=“Steve”和Country=“IN”的查询条件搜索值时,搜索查询结果没有值,即使记录存在,只有在选择Country(印度)时才有


您希望使用
KeywordAnalyzer
处理国家代码(不需要标记化或大小写/停止字折叠);对于人名,
WhitespaceAnalyzer
可能是一个不错的选择
perfieldanalyzerrapper
将两者结合使用。例如:

Analyzer ka = new KeywordAnalyzer(Version.LUCENE_30)
Analyzer wa = new WhitespaceAnalyzer(Version.LUCENE_30)
PerFieldAnalyzerWrapper wrapper =
      new PerFieldAnalyzerWrapper(ka);
wrapper.addAnalyzer("countrycode", ka);

现在只需使用
wrapper

创建您的
IndexWriter
,您使用的是哪种分析器?一些分析器可能会考虑停止字,因此放弃它。嗨,Emanuuele Bezzi,我使用Apache Lucene核心3,如何编辑StestDelphi,java来编辑停止字,我需要手动解压缩jar中的所有类文件并编辑和编译吗?我通过将一个空哈希集传递给StandardAnalyzer解决了这个问题。java Set set1=new HashSet();analyzer=新的标准分析仪(LUCENE_30版,set1);
Analyzer ka = new KeywordAnalyzer(Version.LUCENE_30)
Analyzer wa = new WhitespaceAnalyzer(Version.LUCENE_30)
PerFieldAnalyzerWrapper wrapper =
      new PerFieldAnalyzerWrapper(ka);
wrapper.addAnalyzer("countrycode", ka);