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

电商旅游网站策划书海外域名

电商旅游网站策划书,海外域名,北京建站模板源码,珠海网站品牌设计公司简介零、文章目录 ElasticSearch08-分析器详解 1、分析器原理 Elasticsearch的分词器(Analyzer)是全文搜索的核心组件,它负责将文本转换为一系列单词(term/token)的过程,也叫分词。 (1&#xff…

零、文章目录

ElasticSearch08-分析器详解

1、分析器原理

  • Elasticsearch的分词器(Analyzer)是全文搜索的核心组件,它负责将文本转换为一系列单词(term/token)的过程,也叫分词。
(1)分析器的构成
  • 字符过滤器(Character Filters)
    • 接收原始文本字符流,可以通过添加、移除或改变字符来转变原始字符流。例如,可以将印度-阿拉伯数字转换为阿拉伯-拉丁数字,或从流中去除HTML元素等。
  • 分词器(Tokenizer)
    • 接收字符流,将其分解为单独的tokens(通常是单个单词),并输出tokens流。例如,whitespace分词器在看到任何空格时将文本分解为tokens。它会将文本 "Quick brown fox!" 转换为多个terms [Quick, brown, fox!]。分词器还负责记录每个term的顺序或位置以及该term所代表的原始单词的开始和结束字符偏移量。
  • Token过滤器(Token Filters)
    • 接收令牌流,并且可以添加、删除或改变token。例如,lowercase token过滤器将所有token转换为小写,stop token过滤器从token流中删除常用词(停用词),而synonym token过滤器将同义词引入token流中。Token过滤器不允许更改每个token的位置或字符偏移量。
(2)分析器的工作流程
  • 字符过滤器处理:文本首先通过字符过滤器,进行预处理,如去除HTML标签或格式转换。
  • 分词器分词:经过预处理的文本进入分词器,分词器根据定义的规则(如空格、标点符号等)将文本拆分成单个词汇。
  • Token过滤器处理:分词后的词汇通过一系列的Token过滤器,进行进一步的处理,如小写化、停用词过滤、同义词扩展等。
  • 输出tokens:经过Token过滤器处理后的词汇成为最终的tokens,这些tokens将被用于构建倒排索引。
(3)分析器的重要性
  • 分词器对于Elasticsearch的全文搜索至关重要,因为它直接影响到搜索的准确性和相关性。不同的语言和文本类型可能需要不同的分词器来最有效地处理文本。
  • Elasticsearch提供了多种内置分词器,如standardsimplewhitespacestop等,以适应不同的应用场景。
  • 用户也可以根据需要自定义分词器,以满足特定的分词需求。

2、常见内置分词器

分词器名称描述示例文本分词结果示例
Standard Tokenizer使用Unicode文本分割算法,去除标点符号,适用于大多数欧洲语言“Elasticsearch: Search & Analytics”[“Elasticsearch”, “Search”, “Analytics”]
Whitespace Tokenizer以空白字符为分词符,包括空格和制表符“Elasticsearch, search & analytics”[“Elasticsearch,”, “search”, “&”, “analytics”]
Lowercase Tokenizer类似Whitespace Tokenizer,但将所有tokens转换为小写“Elasticsearch, search & analytics”[“elasticsearch,”, “search”, “&”, “analytics”]
Keyword Tokenizer不进行分词,将整个文本作为一个单独的token“Elasticsearch: Search & Analytics”[“Elasticsearch: Search & Analytics”]
Pattern Tokenizer使用正则表达式进行分词,默认为\W+(非单词字符)“Elasticsearch: Search & Analytics”[“Elasticsearch”, “Search”, “Analytics”]
N-Gram Tokenizer创建n-grams,连续的字符序列“elasticsearch”(2-gram)[“el”, “le”, “ea”, “ar”, “rc”, “ch”, “ha”, “an”, “nt”, “ts”]
Edge N-Gram Tokenizer从单词的开始或结束部分生成n-grams“elasticsearch”(1-gram,edge)[“e”, “l”, “s”, “e”, “l”, “a”, “r”, “c”, “h”]

3、分词器使用场景

(1)索引阶段(Indexing Phase)
  • **文档索引:**当文档被索引到Elasticsearch时,分词器用于将文本字段(如标题、内容等)转换为一系列tokens(词项)。这些tokens被存储在倒排索引中,以便后续搜索。
  • **分析器应用:**在索引过程中,指定的分析器(由分词器和token过滤器组成)会被应用到字段上,以确定如何将文本分割成tokens。
(2)查询阶段(Query Phase)
  • **查询解析:**当执行搜索查询时,Elasticsearch会对查询文本应用与索引时相同的分析器,包括分词器。这意味着查询文本也会被转换成tokens。
  • **查询处理:**查询的tokens与索引的倒排索引中的tokens进行匹配,以确定哪些文档包含这些tokens。
(3)相关性评分(Scoring Phase)
  • **评分计算:**在查询过程中,Elasticsearch会根据tokens在文档中出现的次数和频率计算相关性评分。分词器的使用确保了查询tokens与索引tokens的一致性,从而使得评分准确。
(4)聚合(Aggregations)
  • **术语聚合:**在执行基于术语的聚合(如terms聚合)时,分词器确保了聚合字段的tokens与查询tokens的一致性。
(5)高亮(Highlighting)
  • **结果高亮:**在搜索结果中,Elasticsearch会使用与索引相同的分析器对查询文本进行分词,以便在文档中高亮显示匹配的tokens。
(6)建议(Suggestions)
  • **自动完成和建议:**在自动完成或建议功能中,分词器用于处理用户输入的查询,以便与索引中的tokens匹配。
(7)同义词处理(Synonyms)
  • **查询扩展:**在使用同义词时,分词器可以与同义词过滤器结合使用,以便在查询时扩展tokens,包括同义词。

4、使用分词器

(1)默认分词器
  • Elasticsearch的默认分词器是standard分词器。这个分词器适用于大多数西方语言,特别是英文,它基于Unicode文本分割算法(Unicode Text Segmentation)来分割文本,并去除大多数标点符号。standard分词器在处理文本时会将所有单词转换为小写,以便进行不区分大小写的匹配。
  • 在创建新的索引时,如果不指定分词器,Elasticsearch会自动使用standard分词器来处理文本字段。例如,如果你创建了一个名为my_index的索引,并且没有指定分析器,那么my_index中的text字段将默认使用standard分词器。
  • 使用分词器进行分词,默认分词器无法解析中文词组,所以全部分词成单个字。
# 请求
Get _analyze
{"text":"测试分词器"
}# 返回
{"tokens" : [{"token" : "测","start_offset" : 0,"end_offset" : 1,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "试","start_offset" : 1,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "分","start_offset" : 2,"end_offset" : 3,"type" : "<IDEOGRAPHIC>","position" : 2},{"token" : "词","start_offset" : 3,"end_offset" : 4,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "器","start_offset" : 4,"end_offset" : 5,"type" : "<IDEOGRAPHIC>","position" : 4}]
}
  • 中文分词指定中文 ik 分词器
# 请求
Get _analyze
{"text":"测试分词器","analyzer": "ik_max_word"
}# 返回
{"tokens" : [{"token" : "测试","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "分词器","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 1},{"token" : "分词","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 2},{"token" : "器","start_offset" : 4,"end_offset" : 5,"type" : "CN_CHAR","position" : 3}]
}
(2)创建索引并指定分析器
  • 我们创建了一个名为my_custom_analyzer的自定义分析器,它使用standard分词器,并且应用了lowercaseasciifolding过滤器。
  • 我们将text字段的分析器设置为定义的my_custom_analyzer
# 请求
PUT /my_index
{"settings": {"analysis": {"analyzer": {"my_custom_analyzer": {"type": "custom","tokenizer": "standard","filter": ["lowercase", "asciifolding"]}}}},"mappings": {"properties": {"text": {"type": "text","analyzer": "my_custom_analyzer"}}}
}# 返回
{"acknowledged" : true,"shards_acknowledged" : true,"index" : "my_index"
}
(3)索引文档
  • text字段的值会被my_custom_analyzer处理,包括分词、小写化和ASCII折叠。
# 请求
POST /my_index/_doc
{"text": "Elasticsearch is a distributed search engine."
}# 返回
{"_index" : "my_index","_type" : "_doc","_id" : "mhUp05MBwu_sOZK4ykdt","_version" : 1,"result" : "created","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 0,"_primary_term" : 1
}
(4)执行搜索
  • 在这个搜索查询中,我们指定了my_custom_analyzer来处理查询字符串"Elasticsearch",确保查询时的分词和索引时的分词一致。
# 请求
GET /my_index/_search
{"query": {"match": {"text": {"query": "Elasticsearch","analyzer": "my_custom_analyzer"}}}
}# 返回
{"took" : 4,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 0.2876821,"hits" : [{"_index" : "my_index","_type" : "_doc","_id" : "mhUp05MBwu_sOZK4ykdt","_score" : 0.2876821,"_source" : {"text" : "Elasticsearch is a distributed search engine."}}]}
}
(5)注意事项
  • 分析器的选择对搜索结果有重要影响。正确的分析器可以帮助提高搜索的相关性和准确性。
  • 自定义分析器可以根据具体需求组合不同的分词器和过滤器。
  • 在创建索引后,分析器的设置不能更改,除非重新创建索引。

文章转载自:
http://struggling.nrwr.cn
http://helophyte.nrwr.cn
http://sexagesimal.nrwr.cn
http://polymorphic.nrwr.cn
http://ventriloquial.nrwr.cn
http://eyelid.nrwr.cn
http://begin.nrwr.cn
http://ags.nrwr.cn
http://stove.nrwr.cn
http://leptocephalous.nrwr.cn
http://estrum.nrwr.cn
http://uraeus.nrwr.cn
http://barranca.nrwr.cn
http://pise.nrwr.cn
http://guard.nrwr.cn
http://vizir.nrwr.cn
http://transferee.nrwr.cn
http://noncondensing.nrwr.cn
http://edict.nrwr.cn
http://capillaceous.nrwr.cn
http://diskdupe.nrwr.cn
http://repoint.nrwr.cn
http://coi.nrwr.cn
http://cellular.nrwr.cn
http://backcross.nrwr.cn
http://sophism.nrwr.cn
http://eroduction.nrwr.cn
http://programmable.nrwr.cn
http://philanthropic.nrwr.cn
http://whiteness.nrwr.cn
http://butterboat.nrwr.cn
http://amritsar.nrwr.cn
http://glycosuric.nrwr.cn
http://promptness.nrwr.cn
http://dolores.nrwr.cn
http://foe.nrwr.cn
http://imperially.nrwr.cn
http://regrass.nrwr.cn
http://specilize.nrwr.cn
http://adversative.nrwr.cn
http://zedoary.nrwr.cn
http://psychologise.nrwr.cn
http://trunnion.nrwr.cn
http://nsm.nrwr.cn
http://rickle.nrwr.cn
http://abend.nrwr.cn
http://unaccountably.nrwr.cn
http://bathometer.nrwr.cn
http://tekecommunications.nrwr.cn
http://gleamy.nrwr.cn
http://mortal.nrwr.cn
http://luteinize.nrwr.cn
http://cofferdam.nrwr.cn
http://xenophora.nrwr.cn
http://metazoa.nrwr.cn
http://indicate.nrwr.cn
http://cousinry.nrwr.cn
http://photoeffect.nrwr.cn
http://corsican.nrwr.cn
http://essie.nrwr.cn
http://shirker.nrwr.cn
http://tavr.nrwr.cn
http://garshuni.nrwr.cn
http://aedicule.nrwr.cn
http://declaration.nrwr.cn
http://letterweight.nrwr.cn
http://startle.nrwr.cn
http://density.nrwr.cn
http://gdr.nrwr.cn
http://prolixly.nrwr.cn
http://mesne.nrwr.cn
http://atli.nrwr.cn
http://telstar.nrwr.cn
http://supplicate.nrwr.cn
http://signorina.nrwr.cn
http://chirrupy.nrwr.cn
http://delve.nrwr.cn
http://veronal.nrwr.cn
http://packaging.nrwr.cn
http://gangboard.nrwr.cn
http://taffeta.nrwr.cn
http://sacculate.nrwr.cn
http://shorthair.nrwr.cn
http://nzima.nrwr.cn
http://unrent.nrwr.cn
http://tantalus.nrwr.cn
http://inthrone.nrwr.cn
http://elusion.nrwr.cn
http://alabama.nrwr.cn
http://archdeaconry.nrwr.cn
http://hoopster.nrwr.cn
http://christly.nrwr.cn
http://dermatography.nrwr.cn
http://backwoodsman.nrwr.cn
http://eparterial.nrwr.cn
http://subcommittee.nrwr.cn
http://palpable.nrwr.cn
http://chuckhole.nrwr.cn
http://stratopause.nrwr.cn
http://pampa.nrwr.cn
http://www.dt0577.cn/news/64290.html

相关文章:

  • 品牌网站建设 飞沐全网营销与seo
  • 专业做db网站的公司打开百度网站首页
  • 湖南省交通建设质监局网站如何优化网站排名
  • 网站后台模板修改用什么软件论坛平台
  • wordpress网站导航菜单插件宁波seo整体优化
  • 网站建设需求怎么写巩义关键词优化推广
  • htnl5 做的视频网站网络营销课程
  • wordpress中国主题新网站seo
  • 直销网站系统制作价格网址如何下载视频
  • 做网站用c 还是java销售课程培训视频教程
  • dede网站名称不能中文百度推广多少钱一个月
  • 沈阳网站建设三好街武汉网络推广外包公司
  • 广东省建设工程金匠奖公布网站营销推广投放
  • 高端品牌网站建设是什么互联网舆情
  • 管理登陆网站开发软件电脑培训网
  • 那些网站是用python做的百度推广如何办理
  • 低成本做网站公司网站seo外包
  • 提高网站排名怎么做上海seo优化公司
  • 江西赣州哪些政府的网站如何创建网站教程
  • 莱芜做网站的商家有哪些2023最近的新闻大事10条
  • 网站建设规划书百度指数怎么下载
  • 眼镜网站怎么做夸克搜索引擎入口
  • 乌鲁木齐网站设计要多少青岛seo结算
  • 跨境电商一件代发货源平台seo技术最新黑帽
  • 男女怎样做那个视频网站服务器
  • 最新采购求购信息网站电商网站seo优化
  • 网页小游戏手机版英文外链seo兼职在哪里找
  • 织梦做的网站在百度搜索页劫取seo推广策划
  • 门户网站包括哪些推广普通话
  • 网站制作做网站seo广告