Правильный анализатор для поля с обратной косой чертой - PullRequest
1 голос
/ 30 марта 2020

Итак, я пытаюсь настроить новое сопоставление индекса с правильным анализатором для поля Windows, имеющего формат domain\username.

. Я хочу иметь возможность искать домен , имя пользователя И домен \ имя пользователя. Но анализатор по умолчанию, похоже, игнорирует backsla sh (то есть, если я попытаюсь найти домен \ имя пользователя, он будет искать «домен ИЛИ имя пользователя», игнорируя backsla sh), и, если я попробую анализатор пробелов, то мне кажется, совпадать только на домене \ имени пользователя.

Есть советы?

1 Ответ

1 голос
/ 30 марта 2020

Вы можете использовать токенайзер иерархии путей, установив в качестве разделителя обратную косую черту sh - введите c здесь Попробуйте:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "custom_path_tree": {
          "tokenizer": "custom_hierarchy"
        },
        "custom_path_tree_reversed": {
          "tokenizer": "custom_hierarchy_reversed"
        }
      },
      "tokenizer": {
        "custom_hierarchy": {
          "type": "path_hierarchy",
          "delimiter": "\"
        },
        "custom_hierarchy_reversed": {
          "type": "path_hierarchy",
          "delimiter": "\",
          "reverse": "true"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "file_path": {
        "type": "text",
        "fields": {
          "tree": {
            "type": "text",
            "analyzer": "custom_path_tree"
          },
          "tree_reversed": {
            "type": "text",
            "analyzer": "custom_path_tree_reversed"
          }
        }
      }
    }
  }
}
POST my_index/_analyze
{
  "analyzer": "custom_path_tree",
  "text": "C:\Windows\Users"
}
...