我正在对包含空格的字段执行搜索,我希望不对其进行分析,即不将其拆分为克并被视为单个实体。我如何在 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/