Elasticsearch嵌套查询和订单按" hits"

时间:2016-09-10 12:32:35

标签: elasticsearch nested nosql

使用Elasticsearch,我试图搜索嵌套数据并返回最多"命中的文档。"

相关示例数据

POST myrecipes/recipe
{
    "title": "Potato Salad",
    "ingredients": [
        {"name":"potato"},
        {"name":"mayonaise"},
        {"name":"mustard"},
        {"name":"bacon"},
        {"name":"onion"},
        {"name":"parsley"}  
    ]
}

POST myrecipes/recipe
{
    "title": "Seared Scallops",
    "ingredients": [
        {"name":"scallops"},
        {"name":"butter"},
        {"name":"bacon"}
    ]
}

POST myrecipes/recipe
{
    "title": "Tuna melt",
    "ingredients": [
        {"name":"tuna"},
        {"name":"onion"},
        {"name":"butter"},
        {"name":"bacon"},
        {"name":"mayonaise"},
        {"name":"lettuce"},
        {"name":"tomato"},
        {"name":"bread"}
    ]
}

我的索引

PUT myrecipes
{
  "mappings": {
    "recipe": {
      "properties": {
        "ingredients": {
          "type": "nested",
          "include_in_parent": true,
          "properties": {
            "name": {
                "type": "string",
                "fields": {
                    "untouched": {
                        "type": "string",
                        "index": "not_analyzed"
                    }
                }              
            }            
          }
        }
      }
    }
  }
}

我的搜索:

POST  myrecipes/recipe/_search
{
    "query": {
        "nested": {
          "path": "ingredients",
          "query": {
            "bool": {
              "should": [
                {
                  "match": {
                    "ingredients.name": {
                      "query": "bacon"
                    }
                  }
                },
                {
                  "match": {
                    "ingredients.name": {
                      "query": "butter"
                    }
                  }
                }
              ]
            }
          }
        }
    }
}

查询返回

"金枪鱼融化","马铃薯沙拉","烤扇贝"

我希望:

"香煎的扇贝","金枪鱼融化","土豆沙拉"

因为有两个"点击" on"香煎的扇贝"和" Tuna Melt" (培根和黄油),只有一个"击中" on"马铃薯沙拉" (熏肉)。

0 个答案:

没有答案