Задать вопрос
  • Как построить запрос к Elasticsearch, чтобы фильтровать по списку regex?

    MintTea
    @MintTea
    Для фильтрации типа "или" можно использовать секцию "should" используемого вами фильтра "bool". Примерно так:
    curl -XGET 'http://localhost:9200/_search' -d '{
        "filter": {
            "bool": {
                "should": [
                    {
                        "regexp": {
                            "word": "мульт.*"
                        }
                    },
                    {
                        "regexp": {
                            "word": "фильм.*"
                        }
                    }
                ],
                "must_not": {
                    "terms": {
                        "word": ["видео", "скачать"]
                    }
                }
            }
        }
    }'


    Валидация регулярок возможна через эластик (Validating api):
    curl -XGET 'http://localhost:9200/_validate/query?explain' -d '{
        "query": {
            "regexp": {
                "word": "мульт.*"
            }
        }
    }'
    Ответ написан
    Комментировать