我有一个文本被另一个应用程序标记。我不希望在查询时返回这些标签的查询。ElasticSearch防止搜索html标签
我试过使用html_strip,但我仍然能够搜索这些标签。
标签的示例可能会有所不同,但它们与Freddy类似。 我也试过Freddy,在这两个结果中,我都可以搜索范围或PERSON并得到没有出现这些词的结果。
我在做什么错?
指数映射:
{
"mapping": {
"properties":{
"text":{
"type":"text",
"analyzer":"my_analyzer"
}
}
},
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "keyword",
"char_filter": [
"my_char_filter"
]
}
},
"char_filter": {
"my_char_filter": {
"type": "html_strip"
}
}
}
}
}
查询
{
"query":{
"match":{
"text":"span"
}
},
"highlight":{
"fields":{
"text":{}
}
}
}
响应:
..
"hits": [
{
"_index": "my_index",
"_type": "wat",
"_id": "1",
"_score": 0.39556286,
"_source": {
"text": "Hello Freddy"
},
"highlight": {
"text": [
"Hello <span>Freddyspan>"
]
}
}
]
...
2017-08-27
aclokay
+1
它似乎你在你的映射有一个错字:'analzer'应该读'分析器' –
+0
@Val感谢您指出这一点。我改成了分析仪,但没有解决问题.. –
+0
您是否删除了索引,重新创建索引并重新编制了索引数据? –