索引的时候,可以自定义分词,添加 html_strip 过滤掉 html 标签不分词,但文档的 _source 里面还是会有 html 标签,因为需要做高亮,命中的高亮文本是从 _source 里面取的,如果命中的文本前后有 html 标签,则返回的高亮文本里也有可能会有标签,并且标签还有可能被截断,这就导致返回给前端无法准确展示。
数据使用 Logstash pipeline 从 mysql 同步到 es,目前想到的一个方案是在 pipeline 里加了 mutate,把所有 html 标签全部过滤掉,这样返回给前端的就只是纯文本,粗略看了下索引数据,基本满足要求。
如果不在数据写入 es 前过滤掉标签,有没有办法在搜索返回时过滤掉标签?
mutate 只是把 html 标签过滤掉,文档里还有些 url 链接(并可能带 url 参数),好像也会被索引到,有没有办法不索引 url 及后面的 url 参数。
以上,一般搜索引擎里如何实现把 html 标签过滤掉,同时返回的数据能够提供前端友好地展示?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/698866
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.