实现此目的的一种方法是在分析字段时使用html_strip
char过滤器
preview_html。
这样可以确保while匹配不会在html标记上发生,因此突出显示将忽略它,如下面的示例所示。
例:
put test{ "settings": { "index": { "analysis": { "char_filter": { "my_html": { "type": "html_strip" } }, "analyzer": { "my_html": { "tokenizer": "standard", "char_filter": [ "my_html" ], "type": "custom" } } } } }}put test/test/_mapping{ "properties": { "preview_html": { "type": "string", "analyzer": "my_html", "search_analyzer": "standard" } }}put test/test/1{ "preview_html": "<p> p </p>"}post test/test/_search{ "query": { "match": { "preview_html": "p" } }, "highlight": { "fields": { "preview_html": {} } }}结果
"hits": [ { "_index": "test", "_type": "test", "_id": "1", "_score": 0.30685282, "_source": { "preview_html": "<p> p </p>" }, "highlight": { "preview_html": [ "<p> <em>p</em> </p>" ] } } ]


