【发布时间】:2019-06-21 10:36:51
【问题描述】:
我正在尝试从字段 name 匹配的 Elasticsearch 中获取数据。我有以下两条记录
{
"_index": "sam_index",
"_type": "doc",
"_id": "key",
"_version": 1,
"_score": 2,
"_source": {
"name": "Sample Name"
}
}
和
{
"_index": "sam_index",
"_type": "doc",
"_id": "key1",
"_version": 1,
"_score": 2,
"_source": {
"name": "Sample Name"
}
}
当我尝试使用 sam、sample、Sa 等等文本进行搜索时,我可以使用 match_phrase_prefix 查询来获取两条记录。我用 match_phrase_prefix 尝试的查询是
GET sam_index/doc/_search
{
"query": {
"match_phrase_prefix" : {
"name": "sample"
}
}
}
当我尝试使用字符串 samplen 进行搜索时,我无法获取记录。无论文本之间的空格如何,我都需要搜索并获得结果。如何在 Elasticsearch 中实现这一点?
【问题讨论】:
-
你想只使用词组前缀匹配还是
name字段的一部分也应该匹配?例如,名称sample name foo是否匹配namef或amplename? -
能否向我们展示您使用的映射?特别是对于字段
name天气,该字段定义为text或keyword -
@Dinesh 您能否接受并支持我的回答,因为它解决了您的问题,这将有助于社区轻松找到答案,如果您有后续问题,请告诉我
标签: elasticsearch kibana