asticsearch как сделать запрос (поиск) в одном документе? - PullRequest
0 голосов
/ 24 марта 2020

при условии, что имя индекса - это индекс, а идентификатор документа 1 - "1"

как я могу сделать запрос в одном документе?

как-то так ..

GET index/_search
{
   "query": {
      "id": "1",
      "terms": ["is this text in document 1?"]
   }
}

или

GET index/_doc/1/_search
{
    ...
}

Насколько я нашел,

GET test/_doc/_search
{
    "query": {
        "terms" : {
            "_id" : ["1"]
        }
    }
}

это даст идентификатор документа «1», но не может выполнять дальнейшие запросы.

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

1 Ответ

0 голосов
/ 24 марта 2020

Вы должны составить свой запрос с помощью Boolean Query

Лучше всего указать запрос id под фильтром, поскольку он не будет влиять на оценку. Затем вы можете указать запросы под must, must_not и must, в соответствии с вашими потребностями:

GET index/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "field": "value"
          }
        }
      ],
      "must_not": [],
      "should": [],
      "filter": [
        {
          "terms": {"_id": ["1"]}
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...