前缀查询 #
使用 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
之外,所有参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
value | String | 在由 |
boost | Float | 一个浮点值,用于指定该字段对相关性评分的权重。值大于 1.0 会增加字段的相关性。值在 0.0 到 1.0 之间会降低字段的相关性。默认值为 1.0。 |
case_insensitive | Boolean | 如果设置为 true ,则允许对字段索引值进行不区分大小写的匹配。默认值为 false (大小写敏感性由字段的映射决定)。 |
rewrite | String | 决定 Easysearch 如何重写和评分多词查询。有效值为 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 设置,并构建并运行一个优化后的查询。