使用more_like_this字段的Elasticsearch查询会导致解析搜索源失败。预期的字段名称,但出现[START_OBJECT]错误

时间:2018-11-14 19:45:19

标签: elasticsearch search morelikethis

我们正在使用Elasticsearch 2.4.5。有一个可以生成相当复杂的查询的应用程序。我正在尝试向查询中添加more_like_this字段,如下所示:

{
  "query": {
    "more_like_this": {
      "fields": [
        "title"
      ],
      "ids": [
        1234
      ],
      "min_term_freq": 1,
      "max_query_terms": 25
    },
    "function_score": {
      "query": {
        "bool": {
          "must": [
            {
              "query_string": {
                "default_operator": "AND",
                "fields": [
                  "title",
                  "author"
                ],
                "query": "((title:(\"Tale of Two Cities\"^2)))",
                "lenient": true
              }
            }
          ],
          "filter": {
            "bool": {
              "must": [
                {
                  "bool": {
                    "should": [
                      {
                        "geo_distance": {
                          "distance": "50mi",
                          "location": {
                            "lat": 49.32,
                            "lon": -45.67
                          },
                          "distance_type": "plane",
                          "_cache": true
                        }
                      }
                    ]
                  }
                },
                {
                  "term": {
                    "merged": 0
                  }
                },
                {
                  "bool": {
                    "must_not": {
                      "exists": {
                        "field": "title_type"
                      }
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "functions": [
        {
          "field_value_factor": {
            "field": "quality_score",
            "factor": 1,
            "missing": 0
          }
        }
      ]
    }
  },
  "filter": {
    "bool": {
      "must": []
    }
  },
  "sort": "_score",
  "size": 20,
  "from": 0
}

尝试运行上述代码时出现failed to parse search source. expected field name but got [START_OBJECT]错误。当我删除这段代码时,查询将正确执行。我查看了more_like_this用法的文档和其他示例,但无法确定查询出了什么问题。我假设它与其余查询的形成方式有关。

0 个答案:

没有答案