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 字段进行分词处理。
Elasticsearch API: GET /order/_search - 查询订单信息

原文地址: https://www.cveoy.top/t/topic/o4hj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录