前缀查询
使用 prefix
查询搜索以特定前缀开头的词项。例如,以下查询搜索 `speaker` 字段中包含以 `KING H` 开头的词项的文档:
GET shakespeare/_search
{
"query": {
"prefix": {
"speaker": "KING H"
}
}
}
要提供参数,您可以使用与上述查询等效的查询,并采用以下扩展语法:
GET shakespeare/_search
{
"query": {
"prefix": {
"speaker": {
"value": "KING H"
}
}
}
}
参数
查询接受字段名称 (<field>
) 作为顶级参数
GET _search
{
"query": {
"prefix": {
"<field>": {
"value": "sample",
...
}
}
}
}
<field>
接受以下参数。除 value
外,所有参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
值 | 字符串 | 要在 ` |
提升 | 浮点数 | 一个浮点值,指定此字段对相关性得分的权重。高于 1.0 的值会增加字段的相关性。介于 0.0 和 1.0 之间的值会降低字段的相关性。默认值为 1.0。 |
不区分大小写 (case_insensitive) | 布尔型 | 如果为 `true`,则允许值与索引字段值进行不区分大小写的匹配。默认为 `false`(大小写敏感性由字段的映射决定)。 |
重写 (rewrite) | 字符串 | 确定 OpenSearch 如何重写和评分多词项查询。有效值包括 `constant_score`、`scoring_boolean`、`constant_score_boolean`、`top_terms_N`、`top_terms_boost_N` 和 `top_terms_blended_freqs_N`。默认为 `constant_score`。 |
如果 search.allow_expensive_queries
设置为 false
,则不执行前缀查询。如果启用了 index_prefixes
,则 search.allow_expensive_queries
设置将被忽略,并构建和运行优化后的查询。