弹性搜索中前缀搜索的字段类型
Type of field for prefix search in Elastic Search
我对应该为前缀搜索字段申请什么索引类型感到困惑,许多显示 search_as_you_type 但我认为自动完成不是我想要的。
我有一个 UUID 字段:
id: 34y72ca1-3739-41ff-bbec-f6d17479384c
以下术语应 return 上面的文档:
3
34
34y72ca1
34y72ca1-3739
34y72ca1-3739-41ff-bbec-f6d17479384c
不应该 return 使用 3739,因为它不是以 3739 开头的。最初这是我想要的,但亚马逊 AWS 不支持通配符字段,所以我妥协了前缀搜索而不是部分搜索。
我尝试了 search_as_you_type 字段,但是当我使用整个 ID 时它没有 return 结果。实际上,我的用例是当用户单击回车时,将显示结果,而不是在他们键入时显示结果,因此如果速度受到影响也可以,只是我希望对多行数据有好处。
谢谢
如果您没有显式定义任何索引映射,那么您需要使用id.keyword
字段而不是前缀查询的id
字段来显示适当的结果。这使用关键字分析器而不是标准分析器
{
"query": {
"prefix": {
"id.keyword": {
"value": "34y72ca1"
}
}
}
}
否则,您可以通过添加 multi fields for id
field
来修改您的索引映射
我对应该为前缀搜索字段申请什么索引类型感到困惑,许多显示 search_as_you_type 但我认为自动完成不是我想要的。
我有一个 UUID 字段:
id: 34y72ca1-3739-41ff-bbec-f6d17479384c
以下术语应 return 上面的文档:
3
34
34y72ca1
34y72ca1-3739
34y72ca1-3739-41ff-bbec-f6d17479384c
不应该 return 使用 3739,因为它不是以 3739 开头的。最初这是我想要的,但亚马逊 AWS 不支持通配符字段,所以我妥协了前缀搜索而不是部分搜索。
我尝试了 search_as_you_type 字段,但是当我使用整个 ID 时它没有 return 结果。实际上,我的用例是当用户单击回车时,将显示结果,而不是在他们键入时显示结果,因此如果速度受到影响也可以,只是我希望对多行数据有好处。
谢谢
如果您没有显式定义任何索引映射,那么您需要使用id.keyword
字段而不是前缀查询的id
字段来显示适当的结果。这使用关键字分析器而不是标准分析器
{
"query": {
"prefix": {
"id.keyword": {
"value": "34y72ca1"
}
}
}
}
否则,您可以通过添加 multi fields for id
field