elasticsearch,Javascript,Typescript,elasticsearch" /> elasticsearch,Javascript,Typescript,elasticsearch" />

Javascript elasticsearch如何正确查找转义字符或保留字符?

Javascript elasticsearch如何正确查找转义字符或保留字符?,javascript,typescript,elasticsearch,Javascript,Typescript,elasticsearch,假设我有一个字符串,比如“message ID:1394.00 This is Henry.Lin”, 我想使用elasticsearch查找包含“”的所有短语或单词。在本例中,1394.00和Henry.Lin是我要查找的单词。但是,当我用标准分析器为文档编制索引时,它不起作用。据我所知,标准分析仪将摆脱这种性格。因此,我将分析器更改为ngram。不幸的是,它仍然不起作用。如果有人能帮助我,那就太好了。您可以为dot添加自定义字符过滤器。将“.”替换为“点”。只需使用如下自定义映射: "cha

假设我有一个字符串,比如“message ID:1394.00 This is Henry.Lin”,
我想使用elasticsearch查找包含“”的所有短语或单词。在本例中,1394.00和Henry.Lin是我要查找的单词。但是,当我用标准分析器为文档编制索引时,它不起作用。据我所知,标准分析仪将摆脱这种性格。因此,我将分析器更改为ngram。不幸的是,它仍然不起作用。如果有人能帮助我,那就太好了。

您可以为dot添加自定义字符过滤器。将“.”替换为“点”。只需使用如下自定义映射:

"char_filter": {
"&_to_and": {
    "type":       "mapping",
    "mappings": [ ".=>dot"]
}}
请查看此以了解更多详细信息

现在谈谈,为什么ngram不工作?

问题是,您如何将ngram用作其他分析器的标记器或标记过滤器?最小克数是多少,最大克数是多少?签出此项以清除两者之间的差异

另外,要了解更多关于数据如何在elasticsearch中获取索引以及为什么不匹配查询的信息,请尝试使用api


最后,我不建议您使用ngrams来解决此问题,原因如下:1)n-gram会使索引变大,2)它们完全不同。

在这种情况下,我必须为所有转义字符创建过滤器?我已经尝试过您的方法。然而,当它遇到只包含一个单词的文档时,例如
n/a
,它将失败。