我有一個文本被另一個應用程序標記。我不希望在查詢時返回這些標籤的查詢。ElasticSearch防止搜索html標籤
我試過使用html_strip,但我仍然能夠搜索這些標籤。
標籤的示例可能會有所不同,但它們與<PERSON>Freddy</PERSON>
類似。 我也試過<span>Freddy</span>
,在這兩個結果中,我都可以搜索範圍或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 <span>Freddy</span>"
},
"highlight": {
"text": [
"Hello <<em>span</em>>Freddy</<em>span</em>>"
]
}
}
]
...
它似乎你在你的映射有一個錯字:'analzer'應該讀'分析器' – Val
@Val感謝您指出這一點。我改成了分析儀,但沒有解決問題.. – aclokay
您是否刪除了索引,重新創建索引並重新編制了索引數據? – Val