我正在对包含空格的字段进行搜索,我希望它不会被分析,即不要被拆分为克并被视为单个实体。如何在 Java 中执行此操作?
我正在使用 RESTHighLevelClient,版本 7.4。
字符串是您在 Java 应用程序中使用的数据类型。但是在 elasticsearch 中,有基于服务器字符串的字段数据类型。
您应该为要存储在 elasticsearch 中的文档定义一个映射。对于我们正在讨论的字段,请在映射中选择关键字 dataype。请注意,在为具有此类字段的文档编制索引后,您无法更改字段的映射。因此,请尝试创建一个新索引,并使用映射 rest api 放置所需的映射。之后(而不是更早(为数据编制索引。
如果您在索引文档之前不这样做,elasticsearch 将根据包含该字段的第一个文档提供的值来猜测字段的数据类型。可能这就是为什么您的应用程序 java 字符串已映射到 elasticsearch 中的文本数据类型,并且对文本的搜索与对关键字字段的表单搜索不同。
干杯和新年快乐!