Как сделать запрос с помощью анализаторов и стоп-слов в упругом поиске - PullRequest
1 голос
/ 12 апреля 2019

Итак, мне нужно передать некоторую информацию из файлов XML в эластичный поиск, а затем выполнить поиск в этих файлах с примененными к ним весами tfidf.Мне также нужно вывести 20 лучших результатов.Я хочу сделать это с python.

До сих пор я был в состоянии успешно передать данные XML и создать индекс через python, создавая массивы и затем индексируя их в json-подобном формате.Я знаю, что это означает, что при индексировании большинство других опций, доступных черезasticsearch, получают значение по умолчанию, однако я не смог найти способ сделать это по-другому.Что мне остается делать, так как все данные передаются в индекс, так это искать их.Мне дают 10 документов, которые содержат заголовок и небольшое резюме содержащегося текста, и мне нужно вернуть 20 лучших результатов с помощью tfidf черезasticsearch.Вот как я собираю 10 текстовых файлов, которые нужно искать в моем индексе, и так я пытаюсь их искать.

queries = []
with open("testingQueries.txt") as file:
    queries = [i.strip() for i in file]


for query_text in queries:
    query = {
        'query': {
            'more_like_this': {
                'fields': ['document.text'],
                'like': query_text
            }
        }
    }
    results = es.search(index=INDEX_NAME, body=query)
    print(str(results) + "\n")

Как вы можете видеть, я не добавил анализатор в этот запрос и не знаю, как добавить веса tfidf для поиска этих запросов в моих данных.Я искал ответ везде, но большинство ответов либо не связаны с Python, либо не решают мою проблему.Результаты поиска, которые я получаю, также не дают мне 20 лучших результатов ... фактически они не дают мне никаких результатов.Выходные данные выглядят так: {'take': 14, 'timed_out': False, '_shards': {'total': 5, 'success': 5, 'skipped': 0, 'failed': 0}, 'хиты »: {« всего »: 0,« max_score »: нет,« хиты »: []}}

, когда я пытаюсь сделать то же самое с« соответствием »вместо« больше_подобных », я получаю многобольше результатов с попаданиями, но опять же, мне все равно нужны результаты tfidf и результаты из 20 лучших документов, похожих на мои запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...