Как использовать эластичные поисковые индексы с разным весом - PullRequest
0 голосов
/ 10 марта 2020

Я создал более эластичные индексы поиска для различных типов информации в нашей системе. В основном они используются индивидуально для поиска элементов в определенном индексе. Однако у нас есть общий поиск на нашей домашней странице, где пользователь может искать по всем индексам. Например, будет использоваться следующий поиск:

curl -XGET 'localhost:9200/my-index-%2A/_doc/_search?pretty' -H 'Content-Type: application/json' -d'
{                         
  "size":25,              
  "query":{               
    "bool":{              
      "must":[            
        {                 
          "term":{"languageCode":"de"}
        },                
        {                 
          "bool":{        
            "should":[
              {
                "simple_query_string":{
                  "query":"search-term",
                  "fields":[
                    "title_*.language^50",
                    "description_*.language^10",
                    "content_*.language^1"
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
}'

Я использую в этом поиске множество индексов с подстановочными знаками (my-index-*/_doc/_search). Это работает абсолютно правильно, но моя проблема в том, что я хочу, чтобы один из индексов генерировал меньше очков, чем другие. Есть ли возможность придать индексу меньший вес в многоиндексном запросе?

1 Ответ

1 голос
/ 10 марта 2020

Да, вы действительно можете применить повышение индекса

GET /_search
{
    "indices_boost" : [
        { "my-index-do-not-want" : 0.5 }
    ]
}

Кроме того, в зависимости от вашего варианта использования вы можете рассмотреть возможность включения dfs_query_then_fetch для этого запроса, так как упоминается [здесь]. ( эластичный поиск по нескольким индексам ) Таким образом, ваши оценки должны быть более сопоставимы между индексами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...