电商网站上的搜索功能是如何实现的「如何开搜索电商」
今天是刘小爱自学Java的第159天。
感谢你的观看,谢谢你。
学习计划安排如下:
索引库本质上和数据库类似,也是存储数据的,既然如此自然也会有增删改查。那么这个索引库到底有何特别应用呢?索引库的特别之处在于它的查询,用户搜索一个词语,响应哪些对应的数据给用户?重点是match匹配查询和词条查询。一、索引库的增删改查1新增数据
①通过POST请求添加数据。
昨天我们给索引库设定了几个字段,以上述例子中的title字段为例,给其添加一条数据“小爱手机”,这样后面可以通过索引库来快速定位这条数据了。
通过响应结果可以看到result显示的是“created”,也就是新建了一个数据。
注意:这里的请求方式是POST,昨天关于索引库的创建时POST对应的是修改,PUT是新增,至于这儿为何是POST,暂时不清楚。
②随机生成id
系统会随机生成一个id来记录这条新增的数据,但是这个id太复杂了,不好记住。
所以在新增数据时自定义id。
2自定义id
在请求路径中指定id即可。
关于请求路径:索引库是liuxiaoai01,索引类型goods,id为1,添加了一条数据。
有了id之后我们就可以去进行修改和删除数据的操作了,如果不是系统随机的id不容易记住,使用起来不方便。
3修改数据
PUT请求就是修改了,但是要注意使用PUT必须要指定id,如果没有会报错。
其中关于id的作用:
如果id在文档中不存在,则新增该数据,就相当于通过POST添加了一条数据。如果id在文档中存在,则修改对应id数据。也通过PUT请求既能完成新增操作又能完成修改操作,一般都会直接使用PUT。
但也要知道使用POST新增数据这回事。
3删除数据
根据id即可删除对应的数据。
PS:观察响应结果result的值就能看出来进行了什么操作。
created对应新增数据。update对应修改数据。delete对应删除数据。4查询数据
同样的方式,GET请求即对应的查询操作,根据id即可查询出对应的数据。
但是这种方法基本不会用。
要知道用户在搜索的时候,他怎么可能知道商品对应的id是多少?
所以用户查询的时候是使用不到id查询的,就需要全文检索技术了,
二、基本的搜索1匹配所有(match_all)
这里query代表的就是一个查询对象,里面编写具体的查询条件是怎样的:
match_all即代表了匹配所有,也就对应了上图中的例子。match即匹配查询,怎么匹配可以自行说明。term即词条查询,查询的时候不考虑分词。……除此之外,还有很多种查询类型。其中查询条件根据查询类型的不同会有多种不同的写法,后续遇到了就说明。
现在主要讲解下match匹配查询和词条查询。
2匹配查询(match)
为了方便测试,我向索引库中添加了两条数据,现在索引库中一共有4条数据:
“小爱手机”,“大爱手机”,“超爱手机”以及“小爱电视”这4条。
match本身也就是匹配的意思,现在匹配和“小爱电视”相关的数据。
运行会发现“手机”相关的数据都被搜索出来了,这是为什么呢?
因为“小爱电视”先会被分词成“小”“爱”以及“电视”,和分词相关的数据都会被搜索出来。
其中响应的结果有个score属性,也就是得分的意思:score越高表示结果越匹配,
在电商网站上搜索某品牌手机,会发现:
该品牌其它产品也会被搜索出来。手机壳啊什么的也会被搜索出来。就是这么一个道理。
and关系
operator翻译过来是运算,意思就是将分词结果通过and连接起来。
查询条件是“小爱电视”,但是其被分词为了“小”,“爱”和“电视”,当然具体是不是这样分词我不太清楚,但思路是一样的:
如果不做说明默认or连接,那么查询到的数据的分词只要满足任意一个就可以。如果说明是and连接,那么查询到的数据分词必须要包含“小”,“爱”和“电视”。3词条匹配(term)
我们在通过词条匹配查询“小爱电视”会发现结果竟然一条数据都没有。
老实说这个结果让我很是懵逼,想了好久才明白,还不确定对不对,我大致说下:
我们在创建索引库的时候,title这个字段名类型是text,它是会分词的,并且分词器是IK,这个昨天就详细说明过。
所以今天往索引库中添加数据“小爱电视”,它会被分词成“小”、“爱”和“电视”。
索引库中title这个字段是没有“小爱电视”这个词的,它被分词了。
用match查询时本身也会将查询条件分词,所以会被查询到。而用term查询时不会将查询条件分词,所以查询不到。最后行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
相关文章
- 曹县怎么富起来的「大城市回老家」
- 宗庆后的电商平台「当当网李国庆现在怎么样」
- 娃哈哈互联网转型「怎么加入娃哈哈电商平台」
- 乐购三明直播节「绿采鲜」
- 娃哈哈推\\「娃哈哈公主宗馥莉」
- 敷尔佳面膜成本多少钱「敷尔佳面膜一箱进价」
- 宗庆后娃哈哈集团「娃哈哈接班人宗馥莉」
- 钢材发布网「钢材销售模式」
- 如何打造高效电商团队「构建高质量发展助推器」
- 开一个快递站挣钱吗「做快递站能不能赚钱」
- 中秋节卖水果「中秋节菜市场」
- 西瓜的销量「如何提高店内销量」
- 东南亚赚钱项目「引进东南亚赚钱」
- 拼多多商品显示低价引流有影响吗「拼多多调价对店铺有影响吗」
- 日本最新创业项目「新型创业项目」
- 有海外业务的快递公司「没的沟通」
- 亚马逊如何选品爆款「亚马逊如何打造爆款产品」
- 网红经济电商「网红电商模式」