Elasticsearch 专家您好!
我有一个用例,但我不确定最好的方法是什么。
我有一个需要索引的 html 文件。这部分很简单,因为我可以配置自定义分析器并创建索引。
虽然我有一个特殊的需求,但我需要在索引到特殊字段时提取一些数据。
这是从 html 中摘录的内容,其中包含数千个这样的行。
<td>....</td>
<td>...
<p>Great item to truck</p></td>...
<a href="javascript:selectItem('1.a.b.c.1.d.f.11')">1.a.b.c.1.d.f.11</a> ...
大量垃圾,甚至内联 CSS。
我的局限性:
- 我无法更改 html
我的挑战:
- 对 html 文件的文本进行索引,同时删除 html 标签、CSS 和噪音
- 我需要在链接中的文本上创建自动补全 例如1.a.b.c.1.d.f.11
因此,当用户开始输入 1.a.b.c.1.d.f.11 时,我必须能够自动完成它。
我是否应该创建一个分析器来删除除标签内容之外的所有内容。如果是这样我该怎么做?
如果您有任何评论或提示,我将不胜感激,您认为使用elasticsearch的正确方法是什么
最佳答案
解决方案 1:
我建议您开发一个小型应用程序来解析 html 文件内容并仅索引您感兴趣的数据。换句话说,删除所有 html 标签和不必要的数据
解决方案2
您可以使用字符过滤器[html_strip]来去除所有html标签
GET /_analyze?tokenizer=keyword&token_filters=lowercase&char_filters=html_strip&text=<td>....</td><td>...<p>Great item to truck</p></td>...<a href="javascript:selectItem('1.a.b.c.1.d.f.11')">1.a.b.c.1.d.f.11</a> ...
关于parsing - Elasticsearch 索引 html 文件内容的正确策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26126314/