Как ссылаться на определенные поля в отдельных индексах при поиске по псевдониму в elasticsearch? - PullRequest
2 голосов
/ 21 июня 2020
const elasticsearch = new Client({ node: `http://localhost:9200` })

const response = await elasticsearch.search({
  index: companyIndex,
  body: {
    query:{
      query_string: {
        query: queryText,
        fields: ['name', 'insuredName', 'instigator']
      }
   }
  }
});

Здесь companyIndex - это псевдоним трех индексов: компании-события, компании-страховщики и файлы компаний. Этот поиск будет выполнять поиск только в самых основных полях по трем индексам. Поля включают:

индекс компании:

  • insuredName
  • instigator

индекс страховой компании:

  • имя

индекс файлов компании:

  • имя

В приведенном выше коде я только что создал поля запроса для трех индексов. Я хочу разделить на три индекса.

1 Ответ

1 голос
/ 21 июня 2020

Есть один способ сделать это, если в вашем документе есть поле _index.

{
  "query":{
    "bool":{
      "should": [{
        "terms":{
          "_index":["company_insureds"]
        }},
        {
         "term":{
          "name":"nameValue"
        }
      }
      ]
    }
  }
}

Чтобы добиться того же, что и с другими полями, вы можете обратиться к multi-bool clause

Если в вашем индексе нет _index, это невозможно сделать.

...