ElasticSearch中的html_strip字符过滤器将标签替换为换行符?

esluluette

我正在测试一些用于ElasticSearch的自定义过滤器,并且因为我太执着,所以我决定也测试标准的html_strip字符过滤器,以确认我知道它是如何工作的。

因此,似乎我知道它是如何工作的,因为我假设它将剥离所有HTML并将其替换为空,但是它似乎对不同的标记执行了不同的操作,例如p(和div)标记用换行符替换:

curl -XGET 'http://localhost:9200/test-analysis/_analyze?tokenizer=keyword&char_filters=html_strip&pretty=1' -d 'Oh <p class="stuff">pickles</p>!'
{
  "tokens" : [ {
  "token" : "Oh \npickles\n!",
  "start_offset" : 0,
  "end_offset" : 32,
  "type" : "word",
  "position" : 1
  } ]
}

强标签和链接什么都不会替换:

curl -XGET 'http://localhost:9200/test-analysis/_analyze?tokenizer=keyword&char_filters=html_strip&pretty=1' -d 'Oh <a href="stuff">pickles</a>!'
{
  "tokens" : [ {
   "token" : "Oh pickles!",
   "start_offset" : 0,
   "end_offset" : 31,
   "type" : "word",
   "position" : 1
 } ]
}

当然,我可以添加一个删除换行符的ANOTHER过滤器,但是关于此的任何文档吗?

这样做的原因行为是HTML块标记诸如<div><p>等由换行字符和HTML内嵌标记如取代astrong等被简单消除。

HTMLStripCharFilter.java在Lucene源代码中查看源代码时可以确认这一点在该类的某个时刻,我们可以看到一些像这样的常量,它们可以说明一切:

  private static final char BLOCK_LEVEL_START_TAG_REPLACEMENT = '\n';
  private static final char BLOCK_LEVEL_END_TAG_REPLACEMENT = '\n';
  private static final char BR_START_TAG_REPLACEMENT = '\n';
  private static final char BR_END_TAG_REPLACEMENT = '\n';
  private static final char SCRIPT_REPLACEMENT = '\n';
  private static final char STYLE_REPLACEMENT = '\n';
  private static final char REPLACEMENT_CHARACTER = '\uFFFD';

想法是或多或少地复制与在浏览器屏幕中呈现的文本段落相同的文本段落。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否有与html_strip过滤器等效的JSON?

来自分类Dev

django自定义过滤器-用换行符替换换行符

来自分类Dev

将字符替换为换行符并在 Html.DisplayFor 中显示

来自分类Dev

Vue.js - 如何在 html 页面中打印包含换行符的字符串变量(从过滤器返回)

来自分类Dev

AngularJS:如何在角度过滤器中用换行符<br>替换

来自分类Dev

将换行符替换为'\ n'

来自分类Dev

如何使用DocX库将换行符替换为空白/空字符串?

来自分类Dev

如何使用sed将字符或表达式替换为换行符?

来自分类Dev

如何使用批处理文件将字符替换为换行符

来自分类Dev

换行符已替换为字符串

来自分类常见问题

使用tr将换行符替换为空格

来自分类Dev

将每n个换行符替换为文件中的选项卡

来自分类Dev

为什么将命令扩展中嵌入的换行符替换为空格?

来自分类Dev

过滤器的Javascript功能不允许换行符去除

来自分类Dev

如何使`<p>`显示:在换行符过滤器后内联?

来自分类Dev

使用sed将换行符转义符'\ n'替换为换行符转义符'\\ n'

来自分类Dev

将换行符转换为实际字符串

来自分类Dev

用换行符替换跨度中的字符

来自分类Dev

如何将换行符从JSON转换为HTML

来自分类Dev

如何将文本文件转换为json字符串(用“ \ n”替换换行符)

来自分类Dev

如何使用VIM将换行符\ n替换为两个字符\ r \ n

来自分类Dev

用字符替换换行符

来自分类Dev

用换行符替换字符

来自分类Dev

用字符替换换行符

来自分类Dev

用字符替换换行符

来自分类Dev

使用换行符作为分隔符将多行字符串转换为Ruby中的数组

来自分类Dev

使用XSS过滤器将文本链接转换为Javascript中的多种HTML格式

来自分类Dev

AngularJS日期过滤器将shortDate格式转换为'M / d / yy'作为标签/字符串

来自分类Dev

替换<ul> -tag中的换行符

Related 相关文章

  1. 1

    是否有与html_strip过滤器等效的JSON?

  2. 2

    django自定义过滤器-用换行符替换换行符

  3. 3

    将字符替换为换行符并在 Html.DisplayFor 中显示

  4. 4

    Vue.js - 如何在 html 页面中打印包含换行符的字符串变量(从过滤器返回)

  5. 5

    AngularJS:如何在角度过滤器中用换行符<br>替换

  6. 6

    将换行符替换为'\ n'

  7. 7

    如何使用DocX库将换行符替换为空白/空字符串?

  8. 8

    如何使用sed将字符或表达式替换为换行符?

  9. 9

    如何使用批处理文件将字符替换为换行符

  10. 10

    换行符已替换为字符串

  11. 11

    使用tr将换行符替换为空格

  12. 12

    将每n个换行符替换为文件中的选项卡

  13. 13

    为什么将命令扩展中嵌入的换行符替换为空格?

  14. 14

    过滤器的Javascript功能不允许换行符去除

  15. 15

    如何使`<p>`显示:在换行符过滤器后内联?

  16. 16

    使用sed将换行符转义符'\ n'替换为换行符转义符'\\ n'

  17. 17

    将换行符转换为实际字符串

  18. 18

    用换行符替换跨度中的字符

  19. 19

    如何将换行符从JSON转换为HTML

  20. 20

    如何将文本文件转换为json字符串(用“ \ n”替换换行符)

  21. 21

    如何使用VIM将换行符\ n替换为两个字符\ r \ n

  22. 22

    用字符替换换行符

  23. 23

    用换行符替换字符

  24. 24

    用字符替换换行符

  25. 25

    用字符替换换行符

  26. 26

    使用换行符作为分隔符将多行字符串转换为Ruby中的数组

  27. 27

    使用XSS过滤器将文本链接转换为Javascript中的多种HTML格式

  28. 28

    AngularJS日期过滤器将shortDate格式转换为'M / d / yy'作为标签/字符串

  29. 29

    替换<ul> -tag中的换行符

热门标签

归档