1. 程式人生 > >8_ElaticSearch 基於boost的搜尋條件權重控制

8_ElaticSearch 基於boost的搜尋條件權重控制

8_ ElaticSearch 基於boost的搜尋條件權重控制

更多幹貨

需求

  • 搜尋標題中包含java的帖子
  • 同時,如果標題中包含hadoop或elasticsearch就優先搜尋出來
  • 同時,如果一個帖子包含java hadoop,一個帖子包含java elasticsearch,包含hadoop的帖子要比elasticsearch優先搜尋出來

知識點

  • 搜尋條件的權重,boost,可以將某個搜尋條件的權重加大,此時當匹配這個搜尋條件和匹配另一個搜尋條件的document
  • 知識點計算relevance score時,匹配權重更大的搜尋條件的document,relevance score會更高,當然也就會優先被返回回來
  • 預設情況下,搜尋條件的權重都是一樣的,都是1

例子

GET /forum/article/_search 
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "title": "blog"
          }
        }
      ],
      "should": [
        {
          "match": {
            "title": {
              "query": "java"
            }
          }
        },
        {
          "
match"
: { "title": { "query": "hadoop" } } }, { "match": { "title": { "query": "elasticsearch" } } }, { "match": { "title": { "
query"
: "spark", "boost": 5 } } } ] } } }

相關內容