0

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

当我使用 QueryBuilders 进行搜索时,由于特殊字符而出现异常。

在搜索网络时,知道我们需要使用来自 Lucene 的 escapeUtils。QueryParser.escape(searchText)

现在,当我在这种情况下进行完全匹配搜索时,它会忽略这些字符并显示“测试”的结果。

请就此提出一些建议。

4

1 回答 1

2

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

于 2012-11-12T14:37:21.163 回答