Elasticsearch API: GET /order/_search - 查询订单信息
Elasticsearch API: GET /order/_search
本示例演示如何使用 Elasticsearch API 的 GET /order/_search 查询订单信息,并使用 nested 查询条件查找包含 '可口可乐' 商品的订单。
请求示例:
GET /order/_search
{
"from": 1,
"size": 100,
"query": {
"nested": {
"query": {
"match": {
"goodsName": {
"query": '可口可乐',
"operator": "AND",
"prefix_length": 0,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"auto_generate_synonyms_phrase_query": true,
"boost": 1
}
}
},
"path": "goodsInfo",
"ignore_unmapped": true,
"score_mode": "max",
"boost": 1
}
}
}
解释:
from: 指定返回结果的起始位置,从 1 开始计数。size: 指定返回结果的数量,这里设置为 100。query: 查询条件,使用nested查询。nested.path: 指定嵌套字段的路径,这里为goodsInfo。nested.query: 嵌套查询条件,使用match查询匹配goodsName字段的值为 '可口可乐'。match.query: 查询字符串,这里为 '可口可乐'。match.operator: 指定匹配操作符,这里为AND,表示所有查询词都必须匹配。match.prefix_length: 指定查询词的匹配前缀长度,这里为 0,表示不需要匹配前缀。match.max_expansions: 指定模糊匹配的最大扩展词数,这里为 50。match.fuzzy_transpositions: 指定是否允许模糊匹配中的字母颠倒,这里为 true,表示允许。match.lenient: 指定是否允许宽松匹配,这里为 false,表示不允许。match.zero_terms_query: 指定当查询词为 0 个时如何处理,这里为NONE,表示不匹配任何结果。match.auto_generate_synonyms_phrase_query: 指定是否自动生成同义词短语查询,这里为 true,表示自动生成。match.boost: 指定匹配的权重,这里为 1。nested.ignore_unmapped: 指定当嵌套字段不存在时是否忽略,这里为 true,表示忽略。nested.score_mode: 指定嵌套查询的评分模式,这里为max,表示取嵌套查询中的最大评分。nested.boost: 指定嵌套查询的权重,这里为 1。
注意:
- 实际应用中,需要根据具体需求调整查询参数。
- 为了保证查询效率,建议使用索引分析器对
goodsName字段进行分词处理。
原文地址: https://www.cveoy.top/t/topic/o4hj 著作权归作者所有。请勿转载和采集!