如何在elasticsearch中存储没有HTML的文档?
问题描述:
我想索引一个包含汉字/单词的文档。在一些领域也有一些HTML标签。如何在elasticsearch中存储没有HTML的文档?
我使用“html_strip”来避免将HTML编入索引,但我的问题是该文档与elasticsearch中的HTML一起存储。这是我的指标设置和映射:
PUT test
{
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
},
"analysis": {
"analyzer": {
"ch_analyzer": {
"tokenizer": "icu_tokenizer",
"char_filter": [ "html_strip" ]
}
}
}
},
"mappings": {
"qa": {
"properties": {
"comment_desc": {
"type": "text",
"analyzer": "ch_analyzer"
},
"article_title": {
"type": "text",
"analyzer": "ch_analyzer"
},
"article_desc": {
"type": "text",
"analyzer": "ch_analyzer"
}
}
},
"sport": {
"properties": {
"title": {
"type": "text",
"analyzer": "ch_analyzer"
},
"content": {
"type": "text",
"analyzer": "ch_analyzer"
}
}
}
}
}
例如我有以下内容:
"<p><br/>台灣人,奧運直播,使用PPStream,(PPS網路電視),觀看同步奧運實況</b>!"
它实际上是索引,但它会被存储为是。
我应该如何更改我的映射以删除存储的文档中的HTML部分? 我能做些什么来将这些文本存储在我的Elasticsearch中去掉了它的HTML组件?
答
如果您想在Elasticsearch上完成此操作(而不是预处理步骤),则必须使用ingest node。没有任何ingest processor正是你想要的,所以你将不得不使用脚本处理器或编写一个插件来做到这一点。
根据您的使用情况,在预处理步骤(使用您选择的语言的代码)中执行此操作可能会更容易。
可能重复:https://stackoverflow.com/questions/45903243/elasticsearch-prevent-html-tags-from-being-searchable – Ansaldos
这个问题不重复。我成功地使其不可搜索,我只是想以我没有存储在HTML文档中的方式存储它 – mel