0

我正在对包含空格的字段执行搜索,我希望它不被分析,即不被拆分为克并被视为单个实体。我如何在 Java 中做到这一点?

我正在使用 RESTHighLevelClient 版本 7.4。

4

1 回答 1

0

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

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

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

干杯和新年快乐!

于 2020-01-01T14:30:59.500 回答