Elasticsearch избежать косой черты - PullRequest
0 голосов
/ 29 сентября 2019

Я используюasticsearch 7 и пытаюсь создать поисковый запрос следующим образом:

{
    "query": {
        "prefix": {
            "document": {
                "value": "/home/myfolder"

            }
        }
    }
}

, чтобы найти все папки, начинающиеся с / home / myfolder (элемент «document» хранитсякак путь "/home/myfolder/file.txt". Я пытаюсь многими способами, но я не нашел способа избежать правильного выхода "/" персонажа. В других ссылках люди предлагали использовать "\ / home / myfolder"или "/ home / myfolder", но это не работает.

большое спасибо за любую помощь

1 Ответ

1 голос
/ 30 сентября 2019

Поскольку вы пытаетесь сопоставить с /, используйте .keyword, как показано ниже.

 {
        "query": {
            "prefix": {
                "document.keyword": {
                    "value": "/home/myfolder"

                }
            }
        }
    }

Это потому, что когда вы не используете ключевое слово, вы пытаетесь сопоставить анализируемое поле и по умолчанию удаляет /.

Попробуйте запустить это и посмотрите, как оноразрывы на каждом слэше (/) для создания инвертированного индекса.

POST /_analyze
{

  "text" :"/home/myfolder/document.txt"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...