java - 搜索时忽略空格 - RESTHighLevelClient Java

标签 java elasticsearch resthighlevelclient

我正在对包含空格的字段执行搜索,我希望不对其进行分析,即不将其拆分为克并被视为单个实体。我如何在 Java 中执行此操作?

我正在使用 RESTHighLevelClient 版本 7.4。

最佳答案

String 是您在 java 应用程序中使用的数据类型。但在elasticsearch中有几个基于字符串的 field datatypes

您应该定义 mapping用于您想要存储在elasticsearch 中的文档。对于我们正在讨论的字段,请在映射中选择关键字数据类型。请注意,在对包含此类字段的文档建立索引后,您无法更改该字段的映射。因此,尝试创建一个新索引并使用 mapping rest api 放置所需的映射。例如。然后,而不是更早,为您的数据建立索引。

如果您在为文档建立索引之前不这样做,elasticsearch 将根据包含该字段的第一个文档提供的值来猜测该字段的数据类型。也许这就是为什么您的应用程序java字符串已映射到elasticsearch中的文本数据类型,并且文本搜索与关键字字段搜索不同。

干杯,新年快乐!

关于java - 搜索时忽略空格 - RESTHighLevelClient Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59285257/

相关文章:

java - Collections.max 签名的解释

java - 如何删除docx4j中空内容的 "Click here to enter text"

elasticsearch best_field 和 most_field 有什么区别

amazon-web-services - 将 Elasticsearch kibana 查询字符串格式转换为 URI 搜索格式

java - 在与 PostingFormats 相关的 java 嵌入式 Elasticsearch 中将数据添加到索引时出错

java - 如何获取 Observablelist 中的所有唯一属性并统计唯一属性?

java - 如何中断/暂停图像的读取?

java - 需要 Elastic Search 高级 Java 客户端 UpdateByQueryRequest API 帮助

java - 从不同 Elasticsearch 主机中的索引查询