【发布时间】:2019-11-16 07:17:55
【问题描述】:
简单示例
我有一个带有 name 文本字段的文档,通常包含地址:
1234 Palm Tree Street NE, Miami, FL 33101
当我使用 wildcard 时,我希望 Elasticsearch 能够在上述地址中找到 Palm Tree:
*alm Tre*
相反,我没有得到任何结果。
基本原理/现实例子
有时name 字段包含跨越 2 个单词的编码信息,如下所示:
R3358b7119 x3387HRL388
我正在使用带有*<search phrase>* 的通配符,当用户输入两个完整的“单词”或单个部分单词时,它会起作用。但是,如果用户输入一个单词的结尾和下一个单词的开头,例如b7119 x3387(使用上面的示例),则不会返回文档。
Regexp 似乎不是一个可能的解决方案 :(
我尝试使用正则表达式搜索:
{'regexp': {'name': '.*b7119 x3387.*'}}
但即使这样也没有返回文档。
我真的很茫然......
【问题讨论】:
标签: regex elasticsearch search