продвигать результаты в Elasticsearch - PullRequest
1 голос
/ 06 марта 2019

Я искал в документации способ продвижения результатов ElasticSearch, если конкретное поле имеет определенное значение, но я не нашел никакой хорошей практики, например, у меня есть пользователь, который живет в Париже, если пользователь ищет запрос Я хочу, чтобы документы, имеющие отношение к Парижу, появились первыми или просто были продвинуты.

1 Ответ

0 голосов
/ 06 марта 2019

В этом есть много чего, но вы хотите исследовать "повышение".Это можно сделать на уровне сопоставления или на уровне запроса .

Пример сопоставления:

{
  "mappings": {
    "_doc": {
      "properties": {
        "location": {
          "type": "keyword",
          "boost": 2 <--- 2x boost to the final score
        }
      }
    }
  }
}

Пример запроса:

GET /_search
{
    "query": {
        "bool": {
            "must": {
                "match": {  
                    "content": {
                        "query":    "full text search",
                        "operator": "and"
                    }
                }
            },
            "should": [
                { "term": {
                    "location": {
                        "value": "xxx",
                        "boost": 3 <--- 3x boost if the location matches
                    }
                }}
            ]
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...