Поиск пути к файлу вasticsearch - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть путь к файлу в следующем формате:

/Volumes/new/tom/my123file_movie+new-release.mov

Я хочу иметь возможность искать необработанную строку без учета регистра, чтобы соответствовать следующим условиям поиска:

/Volumes/new/tom/my123file_movie+new-release.mov # [the full string]
new 123file # [case insensitive inner strings]
ov 12 mov new _movie+new- [case insensitive inner strings]

Какими будут правильные настройки индекса для этого? В настоящее время у меня есть следующее, но это довольно наивно:

body = {
    "settings": {
      "analysis": {
        "analyzer": {
          "lowercase": {
            "type": "custom",
            "tokenizer": "standard",
            "filter": ["lowercase"]
          }
        }
      }
    },
    "mappings": {
        "_doc": {
            "properties": {
                "path": {"type": "text", "analyzer": "lowercase"},

            }
        }
    }
}

1 Ответ

0 голосов
/ 02 ноября 2018

Это не ответ на ваш вопрос, но один из альтернативных подходов - изменить строку в самом поиске. Например, если вам нужно удалить символы, такие как /-_.:, вы можете сделать что-то вроде:

>>> search = ' '.join(re.sub(r':|\/|\.|-|_', ' ', 'file://THIS_IS-MY-SEARCH.STRING').split())
>>> search
'file THIS IS MY SEARCH STRING'

Это может быть некрасиво (и вы можете удалить лишние пробелы), но оно должно выполнить то же, что и выше.

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