Игнорирование TF-IDF в эластичном поиске - PullRequest
0 голосов
/ 12 октября 2018

У меня есть вариант использования кандидатов на отбор резюме на основе ключевых слов описания работы.Поскольку я не могу позволить себе изменять счет каждый раз, когда в список контента добавляется новый профиль кандидата (я предполагаю, что IDF изменится), я хочу опустить TF_IDF.

Индексированный документ:

{
                "_index": "crawler_profiles",
                "_type": "_doc",
                "_id": "81ebeb3ff52d90a488b7bce752a4a0cf",
                "_score": 1,
                "_source": {
                    "content": "Peachtree MBA"
                    }
}

Согласно документации здесь, я создал следующий запрос

 {
  "query": {
    "bool": {
      "should": [
        { "constant_score": {
          "query": { "match": { "content": "corporate strategy" }}
        }},
        { "constant_score": {
          "query": { "match": { "content": "strategy consulting" }}
        }},
        { "constant_score": {
          "query": { "match": { "content": "international strategy" }}
        }},
        { "constant_score": {
          "query": { "match": { "content": "MBA" }}
        }}
      ]
    }
  }
}

Я получаю следующую ошибку

[constant_score] query does not support [query]

Все, что я хочу, это набрать 1 балл за 1-или-n существования термина и 0, если не существует (в конце концов пропустите tf-idf).Любая помощь приветствуется.

Версия ES: 6.4.2

1 Ответ

0 голосов
/ 12 октября 2018

Связанная с вами документация относится к ES версии 2.x.В 6.4.x есть некоторые изменения, как показано здесь: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/query-dsl-constant-score-query.html

Вы должны иметь возможность обновить свой запрос примерно так:

РЕДАКТИРОВАТЬ: Обновлены фильтры "term" для использования "match".

{
  "query": {
    "bool": {
      "should": [
        { "constant_score": {
          "filter": { "match": { "description": "corporate strategy" }}
        }},
        { "constant_score": {
          "filter": { "match": { "description": "strategy consulting" }}
        }},
        { "constant_score": {
          "filter": { "match": { "description": "international strategy" }}
        }},
        { "constant_score": {
          "filter": { "match": { "description": "MBA" }}
        }}
      ]
    }
  }
}
...