Nano Hash - криптовалюты, майнинг, программирование

Запросите одно поле с несколькими значениями в гнезде elasticsearch

У меня есть комбинация двух запросов с Elasticsearch и вложением, первый - это полнотекстовый поиск по определенному термину, а второй - фильтровать или запрашивать другое поле, которое является путем к файлу, но оно должно быть для многих путей к файлам и путь может быть частью или полным путем, я могу запросить один путь к файлу, но мне не удалось сделать это для многих путей к файлам, есть предложения?

Search<SearchResults>(s => s
                            .Query(q => q
                            .Match(m => m.Field(f => f.Description).Query("Search_term"))
                             && q
                            .Prefix(t => t.Field(f => f.FilePath).Value("file_Path"))
                            )
                            );
18.12.2020

  • Вам нужно будет предоставить более подробную информацию, если вы хотите, чтобы кто-то помог вам. 18.12.2020
  • Я думаю, вы хотите выбрать только одно значение поля, когда их много. Я не думаю, что elasticsearch поддерживает это. Возможно, со скриптовыми полями, но это может быть неэффективно 18.12.2020

Ответы:


1

Для поиска более чем одного пути вы можете использовать bool Query в elasticsearch, а затем использовать Should Occur для поиска, подобного логическому ИЛИ, поэтому ваш код должен выглядеть так:

Search<SearchResults>(s => s
                            .Query(q => q.
                             Bool(b => b
                                .Should(
                                    bs => bs.Wildcard(p => p.FilePath, "*file_Pathfile_Path*"),
                                    bs => bs.Wildcard(p => p.FilePath, "*file_Pathfile_Path*"),
....
                                ))
                                && q.Match(m => m.Field(f => f.description).Query("Search_term")
                            )));

Также вы должны использовать WildCard Query, чтобы получить результат для путей, которые могут быть частью или полным путем. Для получения дополнительной информации см. официальную документацию ES о WildQuery и Bool Query ниже: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/bool-queries.html https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html

18.12.2020
  • Спасибо за ваш ответ, но как вы думаете, я могу вместо этого использовать полнотекстовый поиск путей к файлам! 21.12.2020
  • @m.alahdab это зависит от ваших настроек анализатора для поля FilePath. 21.12.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..