elasticsearch - Elasticsearch:参数“include”不区分大小写
问题描述
如何在 elasticsearch 中配置索引以使聚合中的参数“include”不区分大小写?
I have this index:
PUT index {"settings":
{"analysis": {
"analyzer": {
"my_normalizer": {
"type": "custom",
"tokenizer": "keyword",
"char_filter": ,
"filter": ["lowercase"]}}}},
"mappings":{
"_doc":{
"properties":{
"foo": {
"type": "text",
"analyzer": "my_normalizer",
"fielddata": true}}}}}
With data:
PUT index/_doc/1 {
"foo": "BAR"
}
PUT index/_doc/2 {
"foo": "bar"
}
And the query:
GET index/_search{
"size": 0,
"aggs": {
"ad":{
"terms": {"field": "foo",
"include": "ba.*"}}}}
但是,如果我在“BA”中更改“ba”,则聚合没有结果。你能帮助我吗?
解决方案
我相信在术语聚合中,您提供的术语没有被分析,因此当您BA
在那里提供时,ES 不会小写。应用程序应小写您在聚合中提供的术语。这是假设您想要不区分大小写的结果。如果您想要区分大小写的结果(BA
和的不同结果ba
),您首先不应该使用小写分析器。
推荐阅读
- excel - 添加两个单元格如何与添加实际值产生不同的结果?
- java - 从客户端(NodeJS)向服务器(Spring Boot)发送请求时省略字符
- c++ - 为什么对 map::find 应用不存在的键会在 C++ 中返回具有第一个值映射大小的迭代器?
- go - 没有取消传播的上下文
- rust - 如何访问当前平台的文件路径分隔符?
- python - 基于列值的Python Dask数据框分离
- networking - PFSense DHCP 服务器不适用于 RHEL 6 机器
- jquery - 从 jquery 表单生成器获取 json 表单
- java - 在 Spring JPA 中调用 oracle 函数
- r - 使用 tidygraph 导出每个组的节点和图级指标