前缀查询
编辑前缀查询
编辑返回在提供的字段中包含特定前缀的文档。
示例请求
编辑以下搜索返回 user.id
字段包含以 ki
开头的词项的文档。
resp = client.search( query={ "prefix": { "user.id": { "value": "ki" } } }, ) print(resp)
response = client.search( body: { query: { prefix: { 'user.id' => { value: 'ki' } } } } ) puts response
const response = await client.search({ query: { prefix: { "user.id": { value: "ki", }, }, }, }); console.log(response);
GET /_search { "query": { "prefix": { "user.id": { "value": "ki" } } } }
prefix
的顶层参数
编辑-
<field>
- (必需,对象)您要搜索的字段。
<field>
的参数
编辑-
value
- (必需,字符串)您希望在提供的
<field>
中查找的词项的起始字符。 -
rewrite
- (可选,字符串)用于重写查询的方法。有关有效值和更多信息,请参阅
rewrite
参数。 -
case_insensitive
[7.10.0] 在 7.10.0 中添加。 - (可选,布尔值)当设置为 true 时,允许对值与索引字段值进行 ASCII 不区分大小写的匹配。默认值为 false,这意味着匹配的大小写敏感性取决于底层字段的映射。
说明
编辑简短请求示例
编辑您可以通过组合 <field>
和 value
参数来简化 prefix
查询语法。例如
resp = client.search( query={ "prefix": { "user": "ki" } }, ) print(resp)
response = client.search( body: { query: { prefix: { user: 'ki' } } } ) puts response
const response = await client.search({ query: { prefix: { user: "ki", }, }, }); console.log(response);
GET /_search { "query": { "prefix" : { "user" : "ki" } } }
加速前缀查询
编辑您可以使用 index_prefixes
映射参数来加速前缀查询。如果启用,Elasticsearch 会根据配置设置在单独的字段中索引前缀。这使 Elasticsearch 可以更有效地运行前缀查询,但代价是索引更大。
允许昂贵的查询
编辑如果 search.allow_expensive_queries
设置为 false,则不会执行前缀查询。但是,如果启用了 index_prefixes
,则会构建一个优化的查询,该查询不被认为是慢速的,并且尽管有此设置,仍会执行。