Я пытаюсь получить упоминания о годах между 1933 и 1949 годами из поля строки, называемого текстом. Однако я не могу найти запрос рабочего диапазона для этого. То, что я пытался до сих пор терпит крах:ElasticSearch - указать диапазон для строкового поля
{"query":
{"query_string":
{
"text": [1933 TO 1949]
}
}
}
Я также попытался это следующим образом:
{"query":
{"filtered":
{"query":{"match_all":{}},
"filter":{"range":{"text":[1933 TO 1949]}
}
}
}
, но он по-прежнему падает.
текстовое поле образец выглядит как показано ниже, в котором содержится упоминание о 1933 году:
«Примера Дивизион 1933 (Argentinië), Seizoen в де Argentijnse voetbalcompetitie \ п * Чемпионат Андорры по футболу п 1933 (Чили), seizoen in de Chileense voetbalcompetitie \ n * Primera División 1933 (Уругвай), seizoen in de Uruguayaanse voetbalcompetitie \ n \ n "
Однако у меня также есть документы, не содержащие лет внутри, и я хотел бы отфильтровать все документы чтобы сохранить только те, которые упоминают годы в определенный период. Я читаю здесь http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html, что запрос диапазона может применяться и к текстовым полям, и я не хочу использовать какое-либо промежуточное решение для определения дат внутри текстов.
То, что я в принципе хочу добиться того, чтобы иметь возможность получить те же результаты, как при использовании поиска URI запроса:
urltomyindex/_search?q=text:%7B1933%20TO%201949%7D%27
, который отлично работает. Можно ли достичь моей цели? Любая помощь очень ценится!
Можете ли вы вставить образец документа? Я не понимаю природу текстового поля. –
Да, я только что редактировал вопрос. – Crista23
Вы не можете выполнить поиск таким образом. Прежде чем вы вставляете документ, вам нужно идентифицировать и проанализировать год как 1933 год и поместить его в качестве отдельного поля с номером, называемого yearOfRelevance. После этого вы можете сделать запрос диапазона в этом поле –