elasticsearch - 带有反斜杠的字段的正确分析器
问题描述
因此,我正在尝试使用正确的分析器为 Windows 凭据字段设置新的索引映射,该字段的格式为domain\username
.
我希望能够搜索域、用户名和域\用户名。但是默认分析器似乎忽略了反斜杠(意思是,如果我尝试搜索域\用户名,它将搜索“域或用户名”而忽略反斜杠),如果我尝试使用空格分析器,它似乎只匹配域\用户名。
有小费吗?
解决方案
您可以使用路径层次标记器,将反斜杠设置为分隔符 -此处的文档 尝试:
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"
}
推荐阅读
- c# - 我的 swipeview 没有首先以编程方式打开
- selenium - 从通知登录消息中获取文本
- c# - 我可以使用 C# 9 记录作为 IOptions 吗?
- c++ - C++ 无法正确运行输出
- php - 为什么我收到状态代码:WP Ajax 出现 400 Bad Request 错误?
- regex - 仅匹配已定义标签的属性
- python - 为什么我尝试安装 Python 包时找不到它?
- android - 通过 android studio 中的 USB 连接设备将文本从 android 应用程序发送到 PC 浏览器
- scala - 我无法从 scala 中的 properties.conf 加载属性
- php - Laravel关于更新的独特规则忽略当前id不同型号同一张表