напишите запрос, чтобы получить как топ-10, так и исключить и включить

#elasticsearch #elastic-stack #elasticsearch-5

#эластичный поиск #elastic-stack #elasticsearch-5

Вопрос:

Я должен использовать 3 поля (ответ, вопрос; ключевое слово, источник)

  1. Мое требование заключается в том, что мне нужно исключить поле answer = «НЕОБРАБОТАННЫЙ».
  2. Мне нужен Полевой вопрос.ключевое слово
  3. Мне нужно ВКЛЮЧИТЬ поле source = «sonax»

Я использовал приведенный ниже запрос для получения выходных данных. Но после применения поля answer = «НЕОБРАБОТАННЫЙ» я все еще получаю необработанные записи в данных.

 {
  "query": {
    "bool": {
      "must_not": {
        "term": {
          "answer": "UNHANDLED"
        }
      },
      "must": {
        "term": {
          "source": "sonax"
        }
      }
    }
  },
  "aggs": {
    "top_tags": {
      "terms": {
        "field": "question.keyword"
      },
      "aggs": {
        "top_faq_hits": {
          "top_hits": {
            "_source": {
              "includes": [
                "answer"
              ]
            },
            "size": 1
          }
        }
      }
    }
  }
}
 

С уважением,
Прабху

Комментарии:

1. не могли бы вы , пожалуйста, поделиться некоторыми образцами индексных данных и ожидаемым результатом поиска ?

Ответ №1:

Добавление рабочего примера с индексными данными, поисковым запросом и результатом поиска

Индексировать данные:

 {
  "question": "c",
  "answer": "UNHANDLED",
  "source": "sonax"
}
{
  "question": "b",
  "answer": "c",
  "source": "titan"
}
{
  "question": "b",
  "answer": "q",
  "source": "sonax"
}
{
  "question": "d",
  "answer": "a",
  "source": "volvo"
}
 

Поисковый запрос:

 {
  "query": {
    "bool": {
      "must_not": {
        "term": {
          "answer.keyword": "UNHANDLED"
        }
      },
      "must": {
        "term": {
          "source.keyword": "sonax"
        }
      }
    }
  },
  "aggs": {
    "top_tags": {
      "terms": {
        "field": "question.keyword"
      },
      "aggs": {
        "top_faq_hits": {
          "top_hits": {
            "_source": {
              "includes": [
                "source"
              ]
            },
            "size": 1
          }
        }
      }
    }
  }
}
 

Результат поиска:

 "aggregations": {
    "top_tags": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "b",
          "doc_count": 1,
          "top_faq_hits": {
            "hits": {
              "total": {
                "value": 1,
                "relation": "eq"
              },
              "max_score": 0.6931471,
              "hits": [
                {
                  "_index": "65567523",
                  "_type": "_doc",
                  "_id": "3",
                  "_score": 0.6931471,
                  "_source": {
                    "source": "sonax"
                  }
                }
              ]
            }
          }
        }
      ]
    }
  }
 

Комментарии:

1. @Prabhudas8703 пожалуйста, ознакомьтесь с ответом и дайте мне знать, решит ли это вашу проблему?

2. @Prabhudas8703 рад, что смог вам помочь 🙂