之前有没有人面对这个问题,我把一个阿拉伯文档推送到elasticsearch,当我把它取回来时,里面的所有字符都是有线格式,甚至没有Unicode转义。见下文。有谁知道这是什么问题?
{
"script":
{
"phrases":
[
{
"phrase": "'(H 'DE:J+ B/3 'DDG 1H-G (4J! H'DB/3 'DDG '-E/ E1*6I",
"alternativePhrases": [
"'(H 'DE:J+ B/3 'DDG 1H-G (4J! H'DB/3 'DDG '-E/ E.*'1",
"'(H 'DE:J+ B/3 'DDG 1H-G (4J! H'DB/3 'DDG '-F' AJ 7'('",
"'(H 'DE:J+ B/3 'DDG 1H-G (4J! 'DB/3J 'DDG '-E/ E.*'1",
"'(H 'DE:J+ B/3 'DDG 1H-G (4J! 'DB/3 'DDG '-E/ E1*6I"
]
},
{
"phrase": " E' 5-G 'D/9'! D'-/",
"alternativePhrases": [
" E' 5-G 'D/9'! 9DI '-/",
" E3-* 'D/9'! D'-/",
" E' 5-G 'D/9'! D' '-/",
" E' 5-G 'D/9'! H'D'-/"
]
}
]
}
}
这是原始文件(注意:虽然不完全相同)
{
"script":
{
"phrases":
[
{
"phrase": " اغنيه عن اب ليس فقط عن العين",
"alternativePhrases": [
" غريب عين ابليس سقط عن العين",
" غير عين ابليس سقط عن العين",
" غير عين ابليس فقط عن العين",
" غريب عين ابليس فقط عن العين"
]
},
{
"phrase": " كشاف على العين العين بالاحكام",
"alternativePhrases": [
" كشاف على العين العين من له احكام",
" كشف الهوى العين العين من له احكام",
" كشاف على العين العيب من له احكام",
" كشاف على العين العين من الاحكام"
]
}
]
}
}
此外,这是索引映射:
PUT _template/ar-template
{
"index_patterns":
[
"*ar-idx*"
],
"mappings":
{
"doc":
{
"dynamic": "strict",
"properties":
{
"script":
{
"properties":
{
"phrases":
{
"properties":
{
"alternativePhrases":
{
"type": "text",
"fields":
{
"keyword":
{
"type": "keyword",
"ignore_above": 256
}
}
},
"endTime":
{
"type": "keyword",
"ignore_above": 256
},
"phrase":
{
"type": "text",
"fields":
{
"keyword":
{
"type": "keyword",
"ignore_above": 256
}
}
},
"startTime":
{
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
},
"settings":
{
"index":
{
"number_of_shards": "5",
"refresh_interval": "30s",
"number_of_replicas": "1"
}
}
}
答案 0 :(得分:0)
您可以使用标记生成器将您的阿拉伯语输入转换为Unicode。 例如,在ELK文档中,演示了一个标记器,用于将阿拉伯文字转换为等效的拉丁文。 创建索引模板并包含这些标记器和过滤器。
以下是我参考的文档的链接: Elastic Search Unicode Character Folding