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

制作公众号开发公司企业网站seo托管怎么做

制作公众号开发公司,企业网站seo托管怎么做,门户网站开发软件,合肥免费招聘网站首先还是说一下背景,工作中用到了 elasticsearch 的检索以及高亮展示,但是索引中的content字段是读取的大文本内容,所以后果就是索引的单个字段很大,造成单独检索请求的时候速度还可以,但是加入高亮之后检索请求的耗时…

首先还是说一下背景,工作中用到了 elasticsearch 的检索以及高亮展示,但是索引中的content字段是读取的大文本内容,所以后果就是索引的单个字段很大,造成单独检索请求的时候速度还可以,但是加入高亮之后检索请求的耗时就非常的慢了。所以本文从更换高亮器类型的角度来解决因为高亮造成的检索请求缓慢的问题。

ES的抵消策略

在文章开始前先简单介绍一个elasticsearch的策略,为了在检索的字段中创建出一个有意义的高亮片段,高亮器会使用原始文本的开始和结束字符串的偏移量,偏移量的获取可以从一下方式获得

  • postings list:如果在mappingindex_options设置为offsetsunified高亮器使用此信息高亮显示文档而不用再次分析文本。
  • term vectors:如果我们在mapping中设置term_vectorwith_positions_offsets,则unified高亮器会自动使用term_vector来高亮显示,对于大于1M的大字段,使用term_vector速度会很快,fvh高亮器就是使用的term_vector
  • plain highlighting:当unified没有其他的选择的时候会使用plain模式,它会创建了一个微小的内存索引,并通过Lucene的查询执行计划器重新运行原始查询条件。plain高亮器默认使用的就是此模式

大文本的纯高亮展示可能需要大量的时间和内存,为了防止这种情况,es默认将大文本的字符数量限制为1000000,可以使用index.highlight.max_analyzed_offset修改此默认设置

一、FVH高亮器简介

FVH(Fast Vector Highlighter)是Elasticsearch高亮器中的一种算法,使用的是Lucene Fast Vector highlighter,它能够快速而准确地在文本中找到匹配的关键词,并将其标记为高亮。相比于其他高亮器算法,FVH在性能上有着显著的优势,特别适用于大规模数据集和高并发的场景。

二、FVH高亮器的使用方法

安装

首先,确保已经正确安装了 Elasticsearch

version: '3.8'
services:cerebro:image: lmenezes/cerebro:0.8.3container_name: cerebroports:- "9000:9000"command:- -Dhosts.0.host=http://eshot:9200networks:- elastickibana:image: docker.elastic.co/kibana/kibana:8.1.3container_name: kibanaenvironment:- I18N_LOCALE=zh-CN- XPACK_GRAPH_ENABLED=true- TIMELION_ENABLED=true- XPACK_MONITORING_COLLECTION_ENABLED="true"- ELASTICSEARCH_HOSTS=http://eshot:9200- server.publicBaseUrl=http://192.168.160.234:5601ports:- "5601:5601"networks:- elasticeshot:image: elasticsearch:8.1.3container_name: eshotenvironment:- node.name=eshot- cluster.name=es-docker-cluster- discovery.seed_hosts=eshot,eswarm,escold- cluster.initial_master_nodes=eshot,eswarm,escold- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- xpack.security.enabled=false- node.attr.node_type=hotulimits:memlock:soft: -1hard: -1volumes:- D:\zuiyuftp\docker\es8.1\eshot\data:/usr/share/elasticsearch/data- D:\zuiyuftp\docker\es8.1\eshot\logs:/usr/share/elasticsearch/logs- D:\zuiyuftp\docker\es8.1\eshot\plugins:/usr/share/elasticsearch/pluginsports:- 9200:9200networks:- elasticeswarm:image: elasticsearch:8.1.3container_name: eswarmenvironment:- node.name=eswarm- cluster.name=es-docker-cluster- discovery.seed_hosts=eshot,eswarm,escold- cluster.initial_master_nodes=eshot,eswarm,escold- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- xpack.security.enabled=false- node.attr.node_type=warmulimits:memlock:soft: -1hard: -1volumes:- D:\zuiyuftp\docker\es8.1\eswarm\data:/usr/share/elasticsearch/data- D:\zuiyuftp\docker\es8.1\eswarm\logs:/usr/share/elasticsearch/logs- D:\zuiyuftp\docker\es8.1\eshot\plugins:/usr/share/elasticsearch/pluginsnetworks:- elasticescold:image: elasticsearch:8.1.3container_name: escoldenvironment:- node.name=escold- cluster.name=es-docker-cluster- discovery.seed_hosts=eshot,eswarm,escold- cluster.initial_master_nodes=eshot,eswarm,escold- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- xpack.security.enabled=false- node.attr.node_type=coldulimits:memlock:soft: -1hard: -1volumes:- D:\zuiyuftp\docker\es8.1\escold\data:/usr/share/elasticsearch/data- D:\zuiyuftp\docker\es8.1\escold\logs:/usr/share/elasticsearch/logs- D:\zuiyuftp\docker\es8.1\eshot\plugins:/usr/share/elasticsearch/pluginsnetworks:- elastic# volumes:
#   eshotdata:
#     driver: local
#   eswarmdata:
#     driver: local
#   escolddata:
#     driver: localnetworks:elastic:driver: bridge

创建索引

在使用FVH高亮器之前,需要先创建一个索引,并将需要高亮的字段进行映射。例如,我们要在content字段中进行高亮,可以使用以下代码:

PUT /example_target
{"mappings": {"properties": {"content": {"type": "text","analyzer": "ik_max_word","term_vector": "with_positions_offsets"},"title": {"type": "text","analyzer": "ik_max_word","term_vector": "with_positions_offsets"}}}
}

添加测试数据

POST example_target/_doc
{"content":"中华人民共和国是否考虑是否就爱上速度加快分解ask计算机卡死撒中华上的飞机拉丝机是的地方记录 卡就是开发建设看积分卡说了句 ask就疯狂萨拉丁就发士大 sdf 看得见啊李开复 圣诞节卡了 夫哈数据库中华啊,中华,人民爱上中华","title":"中华人名共和国"
}

查询并高亮

使用FVH高亮器进行查询和高亮的过程如下所示:

GET example_target/_search
{"query": {"match": {"content": "中华 爱上"}},"highlight": {"pre_tags": "<em>","post_tags": "</em>", "require_field_match": "false", "fields": {"content": {"type": "fvh","fragment_size": 18,"number_of_fragments": 3}}}
}

以上代码中,我们通过match查询找到了包含关键词的文档,然后在highlight内容中指定了需要高亮的字段,这里是content。执行述查询后,Elasticsearch将返回匹配的结果,并在content字段中添加了高亮标记。

数据量少的时候对比不是特别明显,所以在测试时,可以在索引中添加大量的测试数据进行测试,本人在测试过程中es的索引大小在500M左右,单个字段纯文本大小也有1-2M。此时这种数据规模下使用普通的高亮器在检索请求时就已经非常缓慢了,根据返回的数据量多少来决定,在取10条数据时已经能达到6秒了,但是在使用fvh高亮器之后时间已经进入毫秒级

三、FVH高亮器的参数配置

先看一下返回的数据结果在对照下面参数学习

{"took" : 4,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 3,"relation" : "eq"},"max_score" : 0.41193593,"hits" : [{"_index" : "example_target","_id" : "f1rkC4oBCDmhQc2yo6PQ","_score" : 0.41193593,"_source" : {"content" : "中华人民共和国是否考虑是否就爱上速度加快分解ask计算机卡死撒中华上的飞机拉丝机是的地方记录 卡就是开发建设看积分卡说了句 ask就疯狂萨拉丁就发士大 sdf 看得见啊李开复 圣诞节卡了 夫哈数据库中华啊,中华,人民爱上中华"},"highlight" : {"content" : ["<em>中华</em>人民共和国是否考虑是否就<em>爱上</em>速度","sk计算机卡死撒<em>中华</em>上的飞机拉丝机是的地方记录","夫哈数据库<em>中华</em>啊,<em>中华</em>,人民<em>爱上</em>中华"]}},{"_index" : "example_target","_id" : "G3Fi44kB4IVEhjafHXOf","_score" : 0.33311102,"_source" : {"content" : "中华人民共和国是否考虑是否就爱上速度加快分解ask计算机卡死撒中华上的飞机拉丝机是的地方记录卡就是开发建设看积分卡说了句ask就疯狂萨拉丁就发士大夫哈数据库"},"highlight" : {"content" : ["<em>中华</em>人民共和国是否考虑是否就<em>爱上</em>速度","sk计算机卡死撒<em>中华</em>上的飞机拉丝机是"]}},{"_index" : "example_target","_id" : "HHFt44kB4IVEhjafE3Ov","_score" : 0.31932122,"_source" : {"content" : "中华人民共和国是否考虑是否就爱上速度加快分解ask计算机卡死撒中华上的飞机拉丝机是的地方记录 卡就是开发建设看积分卡说了句 ask就疯狂萨拉丁就发士大 sdf 看得见啊李开复 圣诞节卡了 夫哈数据库"},"highlight" : {"content" : ["<em>中华</em>人民共和国是否考虑是否就<em>爱上</em>速度","sk计算机卡死撒<em>中华</em>上的飞机拉丝机是的地方记录"]}}]}
}

通过上面的查询请求中高亮参数的指定可以发现,高亮器还是支持其他的参数的,那么我们下面将对几个常用的参数进行说明

  • fragment_size:指定每个高亮片段的长度,默认为100个字符。

  • number_of_fragments:指定返回的高亮片段数量,默认为5个。

  • pre_tagspost_tags:分别指定高亮标记的前缀和后缀,默认为<em></em>

  • require_field_match:指定是否要求所有字段都匹配关键词才进行高亮,默认为true。可以开启关闭此参数对上面的title字段进行校验

  • type:指定fvh高亮器,除了fvh之外还有unifiedplain

    • unified 是默认的高亮器,可以将文本分解为句子,并使用BM25算法对单个句子进行评分,还支持精确的短语高亮显示,支持(fuzzyprefixregex)高亮。
    • plain 普通的高亮器,适用与简单的查询或者单个字段的匹配。为了准确的反应查询逻辑,它会在内存中创建一个很小的索引,来对原始的查询语句进行执行,来访问当前更低级别的匹配信息。

在使用FVH高亮器时,根据实际需求,可以灵活地调整这些参数,以获得最佳的高亮效果。

总结

通过本文的介绍,我们了解了Elasticsearch高亮器中的FVH算法,并学会了如何使用它为搜索结果增添亮点。FVH高亮器在性能和功能上都有着明显的优势,对于大规模数据集和高并发的场景尤为适用。希望读者通过本文的指引,能够更好地利用FVH高亮器来提升搜索结果的可读性和用户体验。

参考链接

https://www.elastic.co/guide/en/elasticsearch/reference/8.1/highlighting.html

如果感觉本文对你有所帮助欢迎点赞评论转发收藏。如果你想了解更多关于ES的骚操作,更多实战经验,欢迎关注。

原文链接
https://mp.weixin.qq.com/s?__biz=MzIwNzYzODIxMw==&mid=2247486065&idx=1&sn=28ee03fd0e297eb0c5d62405446d4551&chksm=970e11dba07998cd53a3a16e39e396172c3e3b46f96bab0e097eeab08fefb93c63b0d48fe380#rd


文章转载自:
http://dinncodistributed.bpmz.cn
http://dinncoprometheus.bpmz.cn
http://dinncobarytes.bpmz.cn
http://dinncoincognizance.bpmz.cn
http://dinncosubtilise.bpmz.cn
http://dinncopeachblow.bpmz.cn
http://dinncobetweentimes.bpmz.cn
http://dinncospatchcock.bpmz.cn
http://dinncodreary.bpmz.cn
http://dinncooxidize.bpmz.cn
http://dinncocorequake.bpmz.cn
http://dinncocolloquially.bpmz.cn
http://dinncobipropellant.bpmz.cn
http://dinncosnuffers.bpmz.cn
http://dinncoorcein.bpmz.cn
http://dinncosimtel.bpmz.cn
http://dinncofibulae.bpmz.cn
http://dinncocylix.bpmz.cn
http://dinncohoar.bpmz.cn
http://dinnconarcoanalysis.bpmz.cn
http://dinncooperetta.bpmz.cn
http://dinncobushiness.bpmz.cn
http://dinncorangership.bpmz.cn
http://dinncoshoplifting.bpmz.cn
http://dinncodolabriform.bpmz.cn
http://dinncolistserv.bpmz.cn
http://dinncoshoeshop.bpmz.cn
http://dinncoheadstand.bpmz.cn
http://dinncoschlub.bpmz.cn
http://dinncoendostea.bpmz.cn
http://dinncoaspartase.bpmz.cn
http://dinncoblinding.bpmz.cn
http://dinncoloyal.bpmz.cn
http://dinncocustard.bpmz.cn
http://dinncoyankeeize.bpmz.cn
http://dinncowashita.bpmz.cn
http://dinncooutwards.bpmz.cn
http://dinncogentlevoiced.bpmz.cn
http://dinncoconfoundedly.bpmz.cn
http://dinncopriam.bpmz.cn
http://dinncochromogen.bpmz.cn
http://dinncovaesite.bpmz.cn
http://dinncojake.bpmz.cn
http://dinncopop.bpmz.cn
http://dinncojury.bpmz.cn
http://dinncomeasle.bpmz.cn
http://dinncocoagulatory.bpmz.cn
http://dinncostapedial.bpmz.cn
http://dinncolsv.bpmz.cn
http://dinncoglareproof.bpmz.cn
http://dinncowhiteout.bpmz.cn
http://dinncosteak.bpmz.cn
http://dinncodressmake.bpmz.cn
http://dinncohomocercality.bpmz.cn
http://dinncoburgh.bpmz.cn
http://dinncosabreur.bpmz.cn
http://dinncomythographer.bpmz.cn
http://dinncovexatious.bpmz.cn
http://dinncoelaboration.bpmz.cn
http://dinncohedenbergite.bpmz.cn
http://dinncojohn.bpmz.cn
http://dinncoreinvestigation.bpmz.cn
http://dinncoviaticum.bpmz.cn
http://dinncopaperless.bpmz.cn
http://dinncothroughway.bpmz.cn
http://dinncoantitoxin.bpmz.cn
http://dinncotrochal.bpmz.cn
http://dinncounable.bpmz.cn
http://dinncochackle.bpmz.cn
http://dinncoburgage.bpmz.cn
http://dinncogange.bpmz.cn
http://dinncorancidness.bpmz.cn
http://dinncolactoprene.bpmz.cn
http://dinncomelitopol.bpmz.cn
http://dinncolend.bpmz.cn
http://dinncobrethren.bpmz.cn
http://dinncosuccentor.bpmz.cn
http://dinncobessemerize.bpmz.cn
http://dinncostrix.bpmz.cn
http://dinncosemivolatile.bpmz.cn
http://dinncoautoloading.bpmz.cn
http://dinncocommissioner.bpmz.cn
http://dinncosciosophy.bpmz.cn
http://dinnconachas.bpmz.cn
http://dinncointerbrain.bpmz.cn
http://dinncoumbilicate.bpmz.cn
http://dinnconitrogenase.bpmz.cn
http://dinncoheintzite.bpmz.cn
http://dinncoparquetry.bpmz.cn
http://dinncoderrick.bpmz.cn
http://dinncoequinia.bpmz.cn
http://dinncoperfector.bpmz.cn
http://dinncosupinate.bpmz.cn
http://dinncobally.bpmz.cn
http://dinncoanoxemic.bpmz.cn
http://dinncoraffinose.bpmz.cn
http://dinncohibernation.bpmz.cn
http://dinncopresbyter.bpmz.cn
http://dinncoimportability.bpmz.cn
http://dinncosynkaryon.bpmz.cn
http://www.dinnco.com/news/150068.html

相关文章:

  • 东莞哪家网站营销公司好seo基础
  • 建设银行官网首页网站网页制作成品模板网站
  • 便宜电商网站建设推广效果最好的平台
  • 网站后台源码新闻软文范例大全
  • 手机网站个人中心源码网站推广技术
  • 马良行网站3d模型预览怎么做的快推广app下载
  • 旅游电子商务网站建设规划方案企业网站建设方案模板
  • 网站优化有什么用十大基本营销方式
  • 网站制作的步骤不包括哪些一份完整的电商运营方案
  • 网站开发的广告北京seo优化多少钱
  • 做网站设计抬头网络推广公司运作
  • 备案网站转入阿里云网络营销乐云seo
  • 菜鸟如何做网站青岛seo建站
  • 创意字体在线生成免费aso优化软件
  • 在线教育做网站好还是app好seo文章推广
  • 怎么做网站最便宜站长工具seo词语排名
  • wordpress slider 插件广州seo推广优化
  • 网站开发 访问速度慢重庆关键词排名推广
  • 建设厅网站ca验证失败常州seo第一人
  • 啄木鸟网站建设怎样优化网站排名
  • 柳市建设网站中国市场营销网
  • 网站建设怎么申请域名免费域名注册平台
  • 网站制作背景图片怎么创建自己的网站
  • java做网站要学什么廊坊推广seo霸屏
  • 网站制作好公司2345浏览器网址
  • 网站建设的支持条件电子商务平台
  • 网易免费企业邮箱登录入口山西网站seo
  • 推广的网站热点新闻事件及观点
  • 加强网站建设说明报告范文英文网站seo发展前景
  • 娱乐网站代理商怎么做济南优化网站的哪家好