elasticsearch 在Elasticsearch中,如何将规格化器与嵌套对象组合?
从高层次上看,我的用例需要一个嵌套对象,我还希望对嵌套对象执行完全不区分大小写的匹配 我从这里的示例开始: 它几乎完全符合我的要求,只是它不使用嵌套对象 我试图通过将类型从
elasticsearch 在Elasticsearch中,如何将规格化器与嵌套对象组合?,
elasticsearch,
elasticsearch,从高层次上看,我的用例需要一个嵌套对象,我还希望对嵌套对象执行完全不区分大小写的匹配 我从这里的示例开始: 它几乎完全符合我的要求,只是它不使用嵌套对象 我试图通过将类型从text更改为nested来修改上面页面上的代码: PUT titles { "settings": { "analysis": { "normalizer": { "my_normalizer": { "type": "custom", "fi
text
更改为nested
来修改上面页面上的代码:
PUT titles
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"default": {
"properties": {
"title": {
"type": "nested",
"fields": {
"normalize": {
"type": "keyword",
"normalizer": "my_normalizer"
},
"keyword" : {
"type": "keyword"
}
}
}
}
}
}
}
但是,这不起作用,我收到一条错误消息
如何对Elastic中的嵌套对象执行不区分大小写的精确匹配搜索 由于要处理嵌套对象,因此需要定义其
属性
,而不是字段
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"default": {
"properties": {
"title": {
"type": "nested",
"properties": { <----------- should be properties and not fields
"normalize": {
"type": "keyword",
"normalizer": "my_normalizer"
},
"keyword": {
"type": "keyword"
}
}
}
}
}
}
}
{
“设置”:{
“分析”:{
“标准化器”:{
“我的正常化者”:{
“类型”:“自定义”,
“过滤器”:[
“小写”
]
}
}
}
},
“映射”:{
“默认值”:{
“财产”:{
“标题”:{
“类型”:“嵌套”,
“属性”:{因为您处理的是嵌套对象,所以需要定义其属性
,而不是字段
{
"settings": {
"analysis": {
"normalizer": {
"my_normalizer": {
"type": "custom",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"default": {
"properties": {
"title": {
"type": "nested",
"properties": { <----------- should be properties and not fields
"normalize": {
"type": "keyword",
"normalizer": "my_normalizer"
},
"keyword": {
"type": "keyword"
}
}
}
}
}
}
}
{
“设置”:{
“分析”:{
“标准化器”:{
“我的正常化者”:{
“类型”:“自定义”,
“过滤器”:[
“小写”
]
}
}
}
},
“映射”:{
“默认值”:{
“财产”:{
“标题”:{
“类型”:“嵌套”,
“财产”:{