来往——7天轻松定制属于自己的搜索引擎

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介:

【Open Search产品评测】来往(http://www.laiwang.com/ )

 

[使用背景]

相信很多人都遇到过要给网站或者app做一个搜索功能的需求,很久之前自己折腾过lucene,搞了很久,要自己搞中文分词(比如用中科院的那个)重写tokenizer,自己建索引,做实时更新流程,数据量大了还要考虑怎样给数据分环等等各种问题。从2014年初开始接触opensearch,当时来往要做扎堆搜索(包括搜扎堆,搜帖子,搜某个堆内的帖子,搜堆内成员等)从上手到熟练使用opensearch只用了大概不到1周的时间,总体来说非常满意。感觉这个东西非常符合互联网创业的节奏,简单方便,很快的就能实现自己的搜索接口。

 

[使用过程]

以建立一个来往的扎堆搜索为例(如果不知道扎堆是啥,就理解成类似于百度贴吧的东西),比如搜赵薇,我们能找到赵薇相关的扎堆。我来简单讲述一下怎样迅速的用opensearch搭建一个搜索接口。

1. 注册opensearch的账号,按操作来就好了。

2. 创建一个应用,定义索引结构。例如:

 这里面可搜索,可以理解成需要建索引的字段,比如扎堆的名字,扎堆的pinyin名字,扎堆的标签等。可聚合我这目前没有使用,先不管这个。可过滤,比如某个字段(checkin_type)表示有的扎堆是私密的,有的不是,那么需要把checkin_type勾选成可过滤,这样在检索的时候可以写语句来选取保留哪些符合条件的搜索结果。可展示表示,搜索接口出来我们要给client显示哪些字段。

3. 数据导入,opensearch提供了3种数据导入的方式可以根据应用需要自己选择。比如从mysql导入,都是图形化的界面,需要做的只是将mysql中的字段和刚才建立的索引结构的字段对应起来。也可以通过hdfs,和sdk还有http的api把数据push过来,sdk和http的api方式非常灵活,具体做法可以参考帮助文档讲的很清楚。[注:mysql\hdfs只有内网支持]

4. 建立索引,在界面里点击数据导入这个tab,会有索引重建这块,点击现在重建,opensearch会从刚才我们配置的数据库里,按照配置的字段对应方式,从数据库里读出数据并建立索引。等待这个过程结束,就可以访问搜索接口了。

5. 访问搜索接口,在应用首页的右上角点搜索测试。

如图中有http的接口,访问后返回的是json格式的搜索结果数据。这样最简单的一个搜索雏形就这样搭建出来了。

 

[使用技巧]

下边说一些可能会遇到的需求和问题:

1. 比如遇到排序需求,例如需要A字段命中比B字段的命中要更重要,即A字段匹配的好的要排在前面(比如title和content)。这样可以自定义排序公式,可以参考文档这里给了很多排序函数,比如可以用bm25算法算静态分,text_relevance算和某个字段的匹配程度,fieldterm_proximity计算匹配的密度,也有按时间字段衰减的函数。

2. 比如遇到一些召回方面的需求,例如搜zhoujielun希望可以搜出周杰伦,搜明星可以出所有明星相关的文档(并不一定包含明星两个字),可能通常比较大的搜索引擎通过query refine和query correct这种类似的模块来分析query来扩大召回,这里可以稍微投机一下,我们把确定的希望召回的term可以做成一个新的字段放到索引结构里,并给这些字段一个排序的权重来做到召回并可以合适的排序。

3. 比如遇到搜索附近的事物的需求,排序函数里提供了一个distance函数,是算球面距离的,这个方法是o(n)的,如果数据多了,可能效率会有影响。我们可以在索引结构里做一个字段,用geohash算法(此算法参考http://en.wikipedia.org/wiki/Geohash)将query里的二维坐标变成一些前缀相同的字符串(比如我们可以固定留5,6,7,8位的),把这些geohash后的字符串放到这个新的索引字段里。检索的时候也同样把输入的二维坐标算出5,6,7,8位的geohash串,在这些串能索引到的数据里用distance函数进行更精准的距离计算并排序,可以很高效的完成附近的事物的搜索。

4. 另外数据量这块,目前数据量最大的索引约有5000w个doc,这个状况下在qps500的时候依然可以做到10ms以内返回搜索结果(当然搜索结果的每个doc的可展示字段不要太大,这样响应时间会因为网络传输数据变的慢一些)。

 

[需求]

1. 还有发现一些查询的badcase,在query分析和结果的求交求并这块还是有些badcase的,例如假如我们搜 “周杰伦 中学 照片”,按照重要程度感觉上是周杰伦>>中学=照片,即使没有全命中的文章,那么也应该召回周杰伦 照片或者 周杰伦的文档。相信这块会越做越好的。

OpenSearch解答:目前正在开发一个新功能,会对用户query做多个维度的改写,比如低权重term降权,支持用户自定义词典(同义词、纠错、停用词、专业词等),会进一步提升长尾词的搜索效果,降低无结果率。

 

2. 如果能提供相关搜索功能就更好了:). 比如根据这个搜索应用经常搜的一些query的log,给出搜这个query的用户还可能搜什么词儿。

OpenSearch解答:相关搜索、下拉提示等功能都已经在规划中,包括后续的点击反馈、个性化搜索我们都已经开始调研工作了,敬请期待。

 

[总结]

总之,opensearch帮助使用者解决了搜索功能上很多很多的问题,使得我们在短时间内就可以很容易的按照自己产品的需求定制出自己的搜索引擎。

 

相关实践学习
基于OpenSearch搭建高质量商品搜索服务
本场景主要介绍开放搜索(OpenSearch)打造独有的电商行业垂直解决方案,模板内置电商查询分析、排序表达式及行业算法能力,沉浸式体验更高性能和效果的智能搜索服务,助力企业在线业务智能增长。
相关文章
|
3月前
|
存储 编解码 定位技术
推荐5款压箱底的宝贝,某度搜索就有
本文推荐了五款实用软件:1. WinDynamicDesktop,根据时间和地理位置自动更换桌面壁纸;2. NeeView,功能强大的图像浏览器,支持多种格式和便捷操作;3. 3171.cn,在线工具集网站,涵盖视频、音频、图片编辑等多种功能;4. Moo0VideoMinimizer,高效视频压缩软件,便于存储和分享;5. GnuCash,开源财务管理软件,帮助个人和小企业轻松管理财务。
32 0
|
6月前
|
搜索推荐 算法 安全
新站优化如何吸引搜索引擎蜘蛛的爬行?
保证网站文章高质量、规律更新,避免抄袭,以赢得搜索引擎信任。发布精选外链,待内容更新后发出,增加吸引力。新站避免频繁修改内容,确保稳定性,顺利度过搜索引擎的沙盒期。网站优化需耐心细致,持续优化以提升排名和权重。
40 1
|
数据采集 安全 搜索推荐
谷歌外推关键词代发
答案是:可以使用GLB外推技术实现谷歌霸屏。 为何选择谷歌外推关键词代发? 谷歌外推关键词代发在搜索引擎优化(SEO)和在线市场推广方面起着关键的作用。 此服务能够帮助企业和个人将其关键词策略推向新的高度,从而获得更多的流量和潜在客户。 优势明显 利用谷歌外推关键词代发,你可以确保关键词的高效性和准确性。 你无需亲自进行繁琐的关键词研究和分析,一切都交给专家。
104 0
谷歌外推关键词代发
|
数据采集 安全 搜索推荐
2023谷歌外推关键词代发指南
答案是:可以使用GLB外推技术实现谷歌霸屏。 选择合适的关键词 理解你的目标受众 在开始关键词代发之前,要确保你真正理解了你的目标受众的需求。 这样可以确保你为他们提供有价值的内容。 使用关键词研究工具 使用Google关键词规划师或其他研究工具,找出与你业务相关的高流量、低竞争的关键词。 优化关键词布局 标题中使用关键词 确保在标题、URL和元描述中都使用到关键词,但也要确保内容读起来自然。
157 0
2023谷歌外推关键词代发指南
|
数据采集 搜索推荐 安全
谷歌搜索留痕快速收录怎么实现?
答案是:通过GPC爬虫池技术实现的。 在搜索引擎优化(SEO)领域,快速收录是许多网站主人追求的目标。 而在谷歌搜索引擎中,搜索留痕快速收录成为了一种重要的实现途径。 以下内容详细介绍了如何实现谷歌搜索留痕快速收录。
163 0
谷歌搜索留痕快速收录怎么实现?
|
数据采集 安全 搜索推荐
如何让谷歌搜索留痕快速收录?
答案是:可以通过GPC爬虫池技术实现! 提交你的网站到谷歌 谷歌允许你直接提交你的网站URL,这是一个让谷歌知道你的网站并进行收录的快速途径。 使用Google Search Console 通过Google Search Console,你可以直接向谷歌提交你的网站URL。 提交后,谷歌的爬虫会访问你的网站,并开始将其内容收录到谷歌的搜索结果中。
182 0
如何让谷歌搜索留痕快速收录?
谷歌外推留痕,谷歌搜索留痕快速收录怎么做出来的?
首先:要开始在别人的网站来做谷歌留痕,利用留痕技术快速生产多个页面。
681 0
谷歌外推留痕,谷歌搜索留痕快速收录怎么做出来的?
|
人工智能 小程序 程序员
分享几个冷门但实用的网站!
今天给大家推荐几个冷门但实用的网站,免费又好用对于打工人来讲十分友好。
|
搜索推荐 SEO
“爆料”搜索引擎蜘蛛是靠引导的,而不是佛系优化
又是一个不眠的夜晚,工作对生活节奏不断地敲打,我们新一代的年轻小伙不得不进步,满怀热情来挑战我们对于工作的激情,虽然每一天工作都是重复地进行,但是每一天都有我们留下的痕迹,为世界的美好增添一道绚丽的彩虹,默默的等待只会一无所获,辛劳的付出终归有丰硕的成果,世界万物因为有设计而变得美好,设计推动社会的发展,故此我们需要坚持不懈,用热情拥抱世界。
393 0
“爆料”搜索引擎蜘蛛是靠引导的,而不是佛系优化
|
搜索推荐 数据库
那些你知道的和不知道的搜索引擎,互联网营销
  第一,Google  Google(GoogleInc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于1998年9月7日创立,以设计并管理一个互联网搜索引擎。Google是全世界最受欢迎的搜索引擎,也是世界上最大的搜索引擎之一,它提供了最便捷的网上信息查询方法。
1075 0