elasticsearch - 如何在Elastic search中搜索自由文本?

标签 elasticsearch

在 flex 搜索中,我们如何搜索自由文本。例如,我们在“ test!£!£”!£“test ”等属性之一中具有自由文本数据。

何时,我使用QueryBuilders进行搜索,由于特殊字符,它给出了异常(exception)。

在搜索网上,要知道我们需要使用Lucene的escapeUtils。 QueryParser.escape(searchText)
现在,当我在这种情况下进行精确匹配搜索时,它会忽略这些字符并显示“test”的结果。

请对此提出建议。

最佳答案

您可能正在使用默认映射,即 StandardAnalyzer 。我猜这是在剔除那些甚至没有被索引的字符。您需要确定如何索引文本。您要标记化还是要拥有一个标记?您是否要将这些字符保留在索引中?基于此,您需要选择正确的分析器并通过Put mapping API更新映射。例如,如果要按原样对文本建立索引,则只需将字段配置为"index":"not_analyzed",这意味着将为其上下文建立索引,但不会对其应用任何文本分析。

关于elasticsearch - 如何在Elastic search中搜索自由文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13343292/

相关文章:

c# - 忽略/不映射 NEST 2.0 中的某些 POCO 属性

kibana 中的 ElasticSearch 内存使用情况与 Windows 不匹配

elasticsearch - elasticsearch nest似乎不支持功能分数中的提升因子

elasticsearch - 如何使用CLI标志配置Elasticsearch 5.0的发布地址?

spring - 索引排序Elasticsearch

elasticsearch - 测试 Elastic Search 时如何关闭缓存

elasticsearch - 由elasticsearch支持的django haystack似乎将Decimal作为字符串排序

.net - 用于 ElasticSearch 的 NEST 框架中的 LINQ

spring-boot - Elasticsearch Spring boot findAll Result窗口太大,from + size必须小于或等于:[10000]但为[331576]

java - 设置 Elasticsearch 问题