怎么处理大字符串(长度大于32766)的存储问题?(已解决——2015-02-26 10:41:50)
Elasticsearch | 作者 Abyss | 发布于2015年02月15日 | 阅读数:8588
有个mapping里面有个分词的字段content,用来存储文章的正文。但是经常会碰到一个问题:文章正文长度过大,导致ES报错。总是提示超过32766。
请问有没有什么比较好的办法??
————————————————————————
问题补充:
content是要用于搜索查询的,因此如果截取的话就没意义了。
————————————————————————
问题原因:
没有正确理解分词/不分词概念~
————————————————————————
解决方案:
对于要检索的大文本字段,不使用not_analyzed字段。
原mapping:
{
"content": {
"index": "not_analyzed",
"type": "string",
"fields": {
"analyzed_content": {
"index_analyzer": "index_ansj",
"search_analyzer": "query_ansj",
"type": "string"
}
}
}
}
修改后mapping:
{
"content": {
"index_analyzer": "index_ansj",
"search_analyzer": "query_ansj",
"type": "string"
}
请问有没有什么比较好的办法??
————————————————————————
问题补充:
content是要用于搜索查询的,因此如果截取的话就没意义了。
————————————————————————
问题原因:
没有正确理解分词/不分词概念~
————————————————————————
解决方案:
对于要检索的大文本字段,不使用not_analyzed字段。
原mapping:
{
"content": {
"index": "not_analyzed",
"type": "string",
"fields": {
"analyzed_content": {
"index_analyzer": "index_ansj",
"search_analyzer": "query_ansj",
"type": "string"
}
}
}
}
修改后mapping:
{
"content": {
"index_analyzer": "index_ansj",
"search_analyzer": "query_ansj",
"type": "string"
}
1 个回复
rockybean - Elastic Certified Engineer, ElasticStack Fans,公众号:ElasticTalk
赞同来自: stab