当前位置: 首页 > news >正文

蓝田网站建设淘宝客wordpress想

蓝田网站建设,淘宝客wordpress想,单页设计用什么软件,wordpress如何添加页面子目录下字符过滤器 注意:字符过滤器用于在将字符流传递给分词器之前对其进行预处理 html_strip HTML元素替换过滤器 此过滤器会替换掉HTML标签,且会转换HTML实体 如:& 会被替换为 &。 {"tokenizer": "keyword","…

字符过滤器

注意:字符过滤器用于在将字符流传递给分词器之前对其进行预处理

html_strip HTML元素替换过滤器

此过滤器会替换掉HTML标签,且会转换HTML实体 如:& 会被替换为 &。

{"tokenizer": "keyword","char_filter": ["html_strip"],"text": "<p>I&apos;m so <b>happy</b>!</p>"
}

解析结果:

[ \nI'm so happy!\n ]

因为是 p 标签,所以有前后的换行符。如果使用<span>标签就不会有换行符了。

可配参数说明

  • escaped_tags
    (可选,字符串数组)不包含尖括号 ( < >) 的 HTML 元素数组。当从文本中剥离 HTML 时,过滤器会跳过这些 HTML 元素。例如,设置 [ “p” ] 将会跳过 <p> HTML 元素。

自定义字符过滤器

{"settings": {"analysis": {"analyzer": {"my_analyzer": {"tokenizer": "keyword","char_filter": ["my_custom_html_strip_char_filter"]}},"char_filter": {"my_custom_html_strip_char_filter": {"type": "html_strip","escaped_tags": ["b"]}}}}
}

自定义字符过滤器 my_custom_html_strip_char_filter ,以 html_strip 过滤器为基础,设置了跳过 b 标签不过滤。

mapping 键值替换过滤器

配置键和值的映射,每当遇到与键相同的字符串时,它就会用与该键关联的值替换它们

{"tokenizer": "keyword","char_filter": [{"type": "mapping","mappings": ["0 => 零","1 => 壹","2 => 贰","3 => 叁","4 => 肆","5 => 伍","6 => 陆","7 => 柒","8 => 捌","9 => 玖"]}],"text": "9527就是你的终身代号"
}

解析结果:

{"tokens": [{"token": "玖伍贰柒就是你的终身代号","start_offset": 0,"end_offset": 12,"type": "word","position": 0}]
}

可配参数说明

  • mappings
    (必需*,字符串数组)映射数组,每个元素的形式为key => value.
  • mappings_path
    (必需*,字符串)包含映射的文件的路径key => value。
    此路径必须是绝对路径或相对于config位置的路径,并且文件必须是 UTF-8 编码的。文件中的每个映射必须用换行符分隔。

以上两个参数二选一即可。

pattern_replace 正则替换过滤器

{"tokenizer": "keyword","char_filter": [{"type": "pattern_replace","pattern": "(\\d{3})(\\d{4})(\\d{4})","replacement":"$1****$3"}],"text": "13199838273"
}

解析结果:

{"tokens": [{"token": "131****8273","start_offset": 0,"end_offset": 11,"type": "word","position": 0}]
}

看到结果你就知道我们示例的作用了,关于写法可以看看可配参数的说明。

可配参数说明

  • pattern
    必需,Java正则表达式。
  • replacement
    替换字符串,用 $1…$9来表示正则表达式匹配的内容。注意,我们的示例中每一个正则匹配都用了()括号扩起来。
  • flags
    Java 正则表达式标志。

常用分词器

分析器只能配置一个分词器,所以很多分词器的名称和分析器的名称是一致的

标准分词器

standard词器提供基于语法的分词(基于 Unicode 文本分割算法)并且适用于大多数语言。

POST _analyze
{"tokenizer": "standard","text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

解析结果:

[ The, 2, QUICK, Brown, Foxes, jumped, over, the, lazy, dog's, bone ]

如果仔细对比,你还是能发现和 standard 分析器处理结果的区别的。

我们来试试中文

{"tokenizer": "standard","text": "我是中国人"
}

解析结果:

[,,,,]

分词是分词了,但是貌似不符合我们的要求,关于中文的分词我们后面再说。

可配参数说明

  • max_token_length
    单个词语的最大长度。如果词语长度超过该长度,则按max_token_length间隔将其拆分。默认为255。

自定义分词器

PUT /person1
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"tokenizer": "my_tokenizer"}},"tokenizer": {"my_tokenizer": {"type": "standard","max_token_length": 5}}}}
}

注意配置参数:我们配置了一个自定义的分词器 my_tokenizer ,以 standard 为基础类型,然后配置了一个自定义的分析器 my_analyzer,设置该分析器的分词器为 my_tokenizer 。

letter 字母分词器

只要遇到不是字母的字符,分词器就会将文本分解。它对大多数欧洲语言都做得很好,但对一些亚洲语言来说就很糟糕,因为在这些语言中单词没有用空格分隔。

POST _analyze
{"tokenizer": "letter","text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

解析结果:

[ The, QUICK, Brown, Foxes, jumped, over, the, lazy, dog, s, bone] 

lowercase 小写分词器

其作用和 letter 分词器一样,只是会将字母转换为小写。此处我们就不贴示例了。

classic 经典分词器

适用于英语文档。此分词器具有对首字母缩写词、公司名称、电子邮件地址和 Internet 主机名进行特殊处理的启发式方法。然而,这些规则并不总是有效,分词器对除英语以外的大多数语言都不能很好地工作

POST _analyze
{"tokenizer": "standard","text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone. email: abc@cormm.com"
}

解析结果:

{"tokens": [{"token": "The","start_offset": 0,"end_offset": 3,"type": "<ALPHANUM>","position": 0},{"token": "2","start_offset": 4,"end_offset": 5,"type": "<ALPHANUM>","position": 1},{"token": "QUICK","start_offset": 6,"end_offset": 11,"type": "<ALPHANUM>","position": 2},{"token": "Brown","start_offset": 12,"end_offset": 17,"type": "<ALPHANUM>","position": 3},{"token": "Foxes","start_offset": 18,"end_offset": 23,"type": "<ALPHANUM>","position": 4},{"token": "jumped","start_offset": 24,"end_offset": 30,"type": "<ALPHANUM>","position": 5},{"token": "over","start_offset": 31,"end_offset": 35,"type": "<ALPHANUM>","position": 6},{"token": "the","start_offset": 36,"end_offset": 39,"type": "<ALPHANUM>","position": 7},{"token": "lazy","start_offset": 40,"end_offset": 44,"type": "<ALPHANUM>","position": 8},{"token": "dog's","start_offset": 45,"end_offset": 50,"type": "<APOSTROPHE>","position": 9},{"token": "bone","start_offset": 51,"end_offset": 55,"type": "<ALPHANUM>","position": 10},{"token": "email","start_offset": 57,"end_offset": 62,"type": "<ALPHANUM>","position": 11},{"token": "abc@cormm.com","start_offset": 64,"end_offset": 77,"type": "<EMAIL>","position": 12}]
}

关于与 standard 分词器的区别,可以自行验证一下。

可配参数说明

  • max_token_length
    单个词语的最大长度。如果词语长度超过该长度,则按max_token_length间隔将其拆分。默认为255。

path_hierarchy 路径层次分词器

POST _analyze
{"tokenizer": "path_hierarchy","text": "/one/two/three"
}

解析结果:

[ /one, /one/two, /one/two/three ]

可配参数说明

  • delimiter
    用作路径分隔符的字符。默认为 /
  • replacement
    用于分隔符的可选替换字符。默认为delimiter.
  • buffer_size
    单次读取到术语缓冲区的字符数。默认为1024. 术语缓冲区将按此大小增长,直到所有文本都被消耗掉。建议不要更改此设置。
  • reverse:是否反转,默认为false。
  • skip
    要跳过的初始标记数。默认为0.

示例2

拆分 - 字符,并将它们替换为 / 并跳过前两个标记

PUT /person1
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"tokenizer": "my_tokenizer"}},"tokenizer": {"my_tokenizer": {"type": "path_hierarchy","delimiter": "-","replacement": "/","skip": 2}}}}
}
{"analyzer": "my_analyzer","text": "one-two-three-four-five"
}

解析结果:

[ /three, /three/four, /three/four/five ]

如果设置 reverse 为 true

[ one/two/three/, two/three/, three/ ]

uax_url_email 电子邮件分词器

{"tokenizer": "uax_url_email","text": "Email me at john.smith@global-international.com"
}

解析结果:

[ Email, me, at, john.smith@global-international.com ]

可配参数说明

  • max_token_length
    单个词语的最大长度。如果词语长度超过该长度,则按max_token_length间隔将其拆分。默认为255。

令牌过滤器

令牌过滤器,是在标记之后执行。es 提供的令牌过滤器非常多,我们只列一些可能会有用的来说一说。

uppercase 大写过滤器

{"tokenizer" : "standard","filter" : ["uppercase"],"text" : "the Quick FoX JUMPs"
}

解析结果

[ THE, QUICK, FOX, JUMPS ]

lowercase 小写过滤器

{"tokenizer" : "standard","filter" : ["lowercase"],"text" : "THE Quick FoX JUMPs"
}

解析结果:

[ the, quick, fox, jumps ]

stemmer 词干过滤器

{"tokenizer": "standard","filter": [ "stemmer" ],"text": "fox running and jumping jumped"
}

解析结果:

[ fox, run, and, jump, jump ]

注意标记提取了词干。比如:jumping 和 jumped 提取为了 jump 。

可配参数说明

  • language
    (可选,字符串)用于词干标记的依赖于语言的词干提取算法。可以设置很多语言,我们常用的也就 english(默认:英语)german 德语、spanish 西班牙语等等,但还是不包括中文。

stop 停用词过滤器

该过滤器默认将如下词语作为停用词:

a, an, and, are, as, at, be, but, by, for, if, in, into, is, 
it, no, not, of, on, or, such, that, the, their, then, there, 
these, they, this, to, was, will, with
{"tokenizer": "standard","filter": [ "stop" ],"text": "a quick fox jumps over the lazy dog"
}

解析结果:

[ quick, fox, jumps, over, lazy, dog ]

cjk_bigram 中日韩双字母标记过滤器

此过滤器支持中日韩的文字,但标记只对文字进行两两组合,严格上说对中文的支持也不是十分好。

{"tokenizer" : "standard","filter" : ["cjk_bigram"],"text" : "我们都是中国人"
}

解析结果:

{"tokens": [{"token": "我们","start_offset": 0,"end_offset": 2,"type": "<DOUBLE>","position": 0},{"token": "们都","start_offset": 1,"end_offset": 3,"type": "<DOUBLE>","position": 1},{"token": "都是","start_offset": 2,"end_offset": 4,"type": "<DOUBLE>","position": 2},{"token": "是中","start_offset": 3,"end_offset": 5,"type": "<DOUBLE>","position": 3},{"token": "中国","start_offset": 4,"end_offset": 6,"type": "<DOUBLE>","position": 4},{"token": "国人","start_offset": 5,"end_offset": 7,"type": "<DOUBLE>","position": 5}]
}

除去我们以上介绍的,ES 的令牌过滤器还有很多,我们就不过多说明了,因为他们大多数都是不支持中文的。

http://www.yayakq.cn/news/694838/

相关文章:

  • 网站集约化建设存在的困难wordpress主题标签
  • 响应式网络网站源码哈尔滨做网站哪家便宜
  • 网站宣传文案有哪些网站建设中图片电话
  • 重庆网站首页排名公司微信手机网页版
  • 网站的结构类型石嘴山北京网站建设
  • 展示网站wordpress刷注册
  • 滑县做网站公司wordpress 仿微信主题
  • 关键词推广seo怎么优化安徽360优化
  • 网站源码分享平台网站建设交流
  • 网站项目团队介绍logo制作流程
  • 广州做贷款有什么网站wordpress导航主题下载
  • 深圳市建设工程质量检测中心网站手工制作钟表
  • 深圳网站建设 培训网站 简单
  • 深圳做网站公手机电脑版浏览器网页入口
  • 唐山网站建设方案策划简约 网站
  • 优秀网站的必备要素汕头搭建建站
  • 开发网站中心广州冼村地铁站
  • 建设网站石家庄建筑工程素材资源网站
  • 石狮网站建设费用wordpress 是什么
  • 广东企业建网站惠州网站小程序建设
  • 专业做鞋子网站wordpress思维导图
  • 如何做最强的社交网站建设工程合同无效的情形
  • 对小米网站的建设意见公司做个网站多少钱
  • WordPress默认模板做的站分类网站营销
  • 豪华网站设计工程管理毕业设计代做网站
  • 网站建设肆金手指排名7织梦网站默认密码忘记
  • 杭州建设实名制报备网站德州建设信息网站
  • 一个网站需要多少网页做网咖的网站
  • 网站前端设计做包装用哪个网站
  • 寿光专业做网站优服优科网站建设公司