Elasticsearch - как правильно обрабатывать запрос bool - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу использовать эластичный поиск для поиска различных данных.Я построил индекс с моими данными, и теперь я нахожусь в точке, где мне нужно построить запрос, основанный на выбранных пользователями фильтрах.

И в данный момент я просто застрял, когда моя голова взрывается, потому что запрос boolКажется, что он настолько силен, что я просто не могу его собрать ...

Я хочу объединить динамическое количество фильтров и, возможно, реальный поисковый запрос.

Так что я решил использовать запрос boolэто путь.

мое понимание (из чтения документов!) было (вот как выглядит мой "dsl"):

{
    "from": 0,
    "size": 10,
    "sort": [
        {"sortTitle": "asc"},
        "_score"
    ],
    "query": {
        "bool": {
            "filter": [
                {
                    "term": {
                        "someBoolFlag": true
                    }
                }
            ]
        }
    }
}

Я хотел бы начать там, а затем реализоватьфильтр по фильтру.Текстовый поиск был бы вставлен как обязательная часть фильтра bool, поэтому в теории я должен был бы получить:

{
    "from": 0,
    "size": 10,
    "sort": [
        {"sortTitle": "asc"},
        "_score"
    ],
    "query": {
        "bool": {
            "must": {
                "query_string": {
                    "query": "*foo*",
                    "fields": [
                        "title^2",
                        "description^1.5",
                        "keywords"
                    ]
                }
            }
            "filter": [
                {
                    "term": {
                        "someBoolFlag": true
                    }
                },
                {
                    "terms": {
                        "someProperty": [
                            "someValue1",
                            "someValue2"
                        ]
                    }
                }
            ]
        }
    }
}

Но я не получил бы здесь никаких результатов ... Я думаю, что не сделалЯ действительно понимаю, как работает эта фильтрация и boolquery, так что, возможно, кто-то может дать мне подсказку ...

Мне действительно нравится эластичный, но человек, которого я должен сказать - "запрос dsl" - это PURE HORROR.

С уважением

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