elasticsearch Elasticsearch未生成数字标记,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch未生成数字标记,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch未生成数字标记

elasticsearch Elasticsearch未生成数字标记,elasticsearch,elasticsearch,我很难让Elasticsearch在短语上生成正确的标记,例如15磅巧克力蛋糕。在该字段上执行andfielddata\u field查询时,它将产生以下结果: pou 重击 英镑 赵 巧克力 巧克力 巧克力 巧克力 巧克力 巧克力 结块 蛋糕 我根本看不到里面的数字。我尝试了几种不同的分析器选项组合,但都没有效果。以下是我的映射: { “设置”:{ “索引”:{ “分析”:{ “过滤器”:{ “nGram_过滤器”:{ “类型”:“边缘图”, “最小克”:3, “最大克数”:20 }, “我的

我很难让Elasticsearch在短语上生成正确的标记,例如
15磅巧克力蛋糕
。在该字段上执行and
fielddata\u field
查询时,它将产生以下结果:

pou
重击
英镑
赵
巧克力
巧克力
巧克力
巧克力
巧克力
巧克力
结块
蛋糕

我根本看不到里面的数字。我尝试了几种不同的分析器选项组合,但都没有效果。以下是我的映射:

{
“设置”:{
“索引”:{
“分析”:{
“过滤器”:{
“nGram_过滤器”:{
“类型”:“边缘图”,
“最小克”:3,
“最大克数”:20
},
“我的话”:{
“类型”:“单词分隔符”,
“保留原版”:“真实”
}
},
“分析器”:{
“nGram_分析仪”:{
“类型”:“自定义”,
“标记器”:“标准”,
“过滤器”:[
“标准”,
“小写”,
“asciifolding”,
“我的话”,
“nGram_过滤器”
]
},
“空白_分析器”:{
“类型”:“自定义”,
“标记器”:“空白”,
“过滤器”:[
“小写”,
“asciifolding”
]
}
}
}}
},
“映射”:{
“类别”:{
“财产”:{
“id”:{“type”:“text”},
“排序”:{“类型”:“长”},
“搜索项”:{“类型”:“文本”,“分析器”:“nGram_分析器”,“搜索分析器”:“空白_分析器”,“字段数据”:true}
}
}
}
}

我试过一个
nGram
过滤器,比如:

“nGram\u过滤器”:{
“类型”:“边缘图”,
“最小克”:3,
“最大克数”:20,
“令牌字符”:[
“信”,
“数字”,
“标点符号”,
“符号”
]
}

另外,在
单词分隔符上设置
“生成单词零件”:“true”
“生成单词零件”:true
也没有帮助

编辑
我把
minu gram
的大小改为2,让它工作起来,但我希望保持在3。我想知道是否有一种方法可以将克数保持在3,但同时保持数字不变?

该行为符合预期。这不是数字标记的问题,而是术语长度的问题。即使您有一个包含1或2个字符的字符串,它也会被过滤掉

:每克字符的最小长度。默认为1

任何少于最小字符数的令牌都将被过滤掉


因此,在这种情况下,15被过滤掉。

是否有一种替代方法来实现我希望您知道的目标?是否有任何具体原因不将最小克大小更改为2?