我想使用JAVA API构建弹性搜索查询。我想知道如何在elasticsearch java程序中使用Lucene分析器。我已经检查了QueryBuilders,并尝试直接使用分析器,如下所示。
QueryBuilder builder = QueryBuilders.matchQuery(searchString, fields).analyzer("porterstem");但是,事实证明这是错误的。如果有人试过,你能给我一些信息吗?
发布于 2014-03-16 15:21:41
您应该在映射中定义您的分析器。因此,分析器将在索引时和查询时使用。
发布于 2014-03-16 15:35:32
分析器用于分析要编制索引的文档。分析意味着它将拆分文本,将文本放入标记中,对其进行规范化,并将索引的文档文本小写。这个分析过程会更有帮助,而你的搜索和搜索将会更快。
您可以在查询时提及分析器。而是在查询时分析存储的文档。会很贵的。因此,在索引期间对文档进行分析。ES会在索引和查询时对文档进行分析,查询速度会更快、更少。因此,在高效映射和搜索中提到分析器。
有关分析器的更多信息,请参阅https://lucene.apache.org/core/4_0_0/core/org/apache/lucene/analysis/Analyzer.html
https://stackoverflow.com/questions/22433733
复制相似问题