2016-07-22 54 views
0

我是新来的弹性。
弹性搜索 - 给予完美匹配的偏好

我使用弹性搜索来搜索存储在数据库中的文档的标题字段。更多信息:"title" field - type "String"/indexed and "title.unanalyzed" field - type "String"/unindexed

我希望文档的标题与查询完美匹配发生在搜索结果的顶部,而对于其他所有其他搜索结果,我希望它们按排名顺序排序。我想给分值为1.1的文档与完全匹配的标题将有助于分析字段的0到1之间的弹性分数。我当前的查询:

query: { 
        term: { 
          "title.unanalyzed": "some_title" 
        }, 

        multi_match: { 
          query: "some_title", 
          type: "most_fields", 
          fields: ["title", "other"] 
        } 
     } 

给出了一个错误:failed to parse search source. expected field name but got [START_OBJECT]。需要帮助,谢谢!

回答

1

试试这个:

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "term": { 
      "title.unanalyzed": "some_title" 
      } 
     }, 
     { 
      "multi_match": { 
      "query": "some_title", 
      "type": "most_fields", 
      "fields": [ 
       "title", 
       "other" 
      ] 
      } 
     } 
     ] 
    } 
    } 
}