Построение запроса в elasticsearch?

const crossrefs = [
  { oem: '100500', mn_name: 'champion - moyer diebel' },
  { oem: '561341', mn_name: 'allpoints' },
  { oem: '561341', mn_name: 'partstown' },
  { oem: '100500', mn_name: 'partstown' },
  { oem: '100500', mn_name: 'allpoints' },
  { oem: '113220', mn_name: 'champion - moyer diebel' },
  { oem: '113220', mn_name: 'partstown' },
  { oem: '113220', mn_name: 'allpoints' },
  { oem: 'd2241', mn_name: 'insinger' },
  { oem: 'd2241', mn_name: 'partstown' },
  { oem: 'd2241', mn_name: 'allpoints' },
  { oem: '9647252', mn_name: 'meiko' },
  { oem: '9647252', mn_name: 'partstown' },
  { oem: '9647252', mn_name: 'allpoints' },
];

const { body } = await client.search({
  index: 'parts',
  body: {
    query: {
      bool: {
        should: [
          {
            bool: {
              must: [
                { term: { oem: '100500' } },
                { match: { mn_name: 'champion - moyer diebel' } },
              ],
            },
          },
          {
            bool: {
              must: [
                { term: { oem: '113220' } },
                { match: { mn_name: 'champion - moyer diebel' } },
              ],
            },
          },
          {
            bool: {
              must: [
                { term: { oem: '561341' } },
                { match: { mn_name: 'allpoints' } },
              ],
            },
          },
          {
            bool: {
              must: [
                { term: { oem: '561341' } },
                { match: { mn_name: 'partstown' } },
              ],
            },
          },
          {
            bool: {
              must: [
                { term: { oem: '100500' } },
                { match: { mn_name: 'partstown' } },
              ],
            },
          },
          {
            bool: {
              must: [
                { term: { oem: '100500' } },
                { match: { mn_name: 'allpoints' } },
              ],
            },
          },
          {
            bool: {
              must: [
                { term: { oem: 'd2241' } },
                { match: { mn_name: 'insinger' } },
              ],
            },
          },
        ],
        minimum_should_match: '1%',
      },
    },
  },
});


Находит все, кроме Allpoints, но если удалить любое из других, то начинает находить Allpoints
Буду благодарен за любую помощь в данном вопросе.
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 300 000 до 400 000 ₽
LIME Москва
от 280 000 до 350 000 ₽
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект