一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述elasticsearch之mappings parameters相关的知识,希望能为你提供帮助。
目录
- ignore_above
- 返回elasticsearch目录
ignore_above
设置的字符串将不会被索引或存储(个人认为会存储,但不会为该字段建立索引,也就是该字段不能被检索)。 对于字符串数组,ignore_above
将分别应用于每个数组元素,并且不会索引或存储比ignore_above
更长的字符串元素。Copy
PUT w1
{
"mappings": {
"doc":{
"properties":{
"t1":{
"type":"keyword",
"ignore_above": 5
},
"t2":{
"type":"keyword",
"ignore_above": 10①
}
}
}
}
}
PUT w1/doc/1
{
"t1":"elk",②
"t2":"elasticsearch"③
}
GET w1/doc/_search④
{
"query":{
"term": {
"t1": "elk"
}
}
}GET w1/doc/_search⑤
{
"query": {
"term": {
"t2": "elasticsearch"
}
}
}
①,该字段将忽略任何超过10个字符的字符串。
②,此文档已成功建立索引,也就是说能被查询,并且有结果返回。
③,该字段将不会建立索引,也就是说,以该字段作为查询条件,将不会有结果返回。
④,有结果返回。
⑤,则将不会有结果返回,因为
t2
字段对应的值长度超过了ignove_above
设置的值。该参数对于防止Lucene的术语字节长度限制也很有用,限制长度是
32766
。注意,该ignore_above设置可以利用现有的领域进行更新PUT地图API。
对于值
ignore_above
是字符数,但Lucene的字节数为单位。如果您使用带有许多非ASCII字符的UTF-8文本,您可能需要设置限制,32766 / 4 = 8191
因为UTF-8字符最多可占用4个字节。如果我们观察上述示例中,我们可以看到在设置映射类型时,字段的类型是
keyword
,也就是说ignore_above
参数仅针对于keyword
类型有用。那么如果字符串的类型是
text
时能用ignore_above
吗,答案是能,但要特殊设置:Copy
PUT w2
{
"mappings": {
"doc":{
"properties":{
"t1":{
"type":"keyword",
"ignore_above":5
},
"t2":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above": 10
}
}
}
}
}
}
}PUT w2/doc/1
{
"t1":"beautiful",
"t2":"beautiful girl"
}GET w2/doc/_search①
{
"query": {
"term": {
"t1": {
"value": "beautiful"
}
}
}
}GET w2/doc/_search②
{
"query": {
"term": {
"t2": "beautiful"
}
}
}
【elasticsearch之mappings parameters】①,不会有返回结果。
②,有返回结果,因为该字段的类型是
text
。但是,当字段类型设置为
text
之后,ignore_above
参数的限制就失效了。欢迎斧正,that\'s all see also:[官网7.0:ignore_above](https://www.elastic.co/guide/en/elasticsearch/reference/7.0/ignore-above.html) | [ignore_above](https://www.elastic.co/guide/en/elasticsearch/reference/7.0/ignore-above.html)
推荐阅读
- HBuilder wap2app封装去掉退出提示
- 快速体验,学习lua(一种可嵌入c++,c#,android,object-c等并进行互调支持热更新的脚本)的入门调试系列
- 安卓项目生成apk格式
- Android命令行编译APP
- 42. 接雨水(Trapping Rain Water)
- java.lang.ClassCastException: com.example.yijie.MainData cannot be cast to androidx.fragment.app.Fra
- APP——自动化——java——程序安装好,直接调用
- APP——自动化——java——初始化安装程序
- uni-app map组件关于marker标记点动态设置的问题