Elasticsearch(六)了解全文搜索

本文探讨了Elasticsearch在全文搜索中遇到的问题,如无意义关键字搜索和中文分词不智能的问题。通过理解Elasticsearch的创建索引和搜索过程,我们可以看到它对中文的简单分词导致搜索效果不佳。为解决此问题,文章介绍了全文检索的基础知识,并预告了接下来将研究Elasticsearch的分词组件以实现更智能的中文搜索。
摘要由CSDN通过智能技术生成

遇到的问题

通过前面的学习,我们已经可以使用elasticsearch来进行数据的搜索了,但此时我们发现了一个问题,这个问题如果没有解决好就很影响我们后续的使用,那么该问题是什么呢?我们来看一下:
搜索“在”关键字.png
上面的截图是我搜索“在”关键字出来的结果,按照正常情况下,我们是不是不应该搜索“在”也出来结果呢?因为我们做的是搜索,不是模糊查询,既然是搜索的话,那像这种没有意义的关键字就不应该搜索出来才对的,还有像类似“在”、“是”、“了”等等这些单独存在不能构成一个中文词义的字符也可以搜索了,这显然是一种搜索效果不好的方式。还有一个问题,我们看看下面的截图:
搜索“中国人”关键字

上面这个截图是我搜索“中国人”这个关键词出来的结果,然后我们通过高亮匹配的内容发现,它是“中”、“国”、“人”拆成3个关键字去匹配内容了,而我们想要的是它匹配“中国人”,“中国”,“人”这样的搜索效果,但现在的情况却是每个中文字符都能搜索,这样就不太智能了。
那从表面上看,出现以上两个问题的原因貌似是因为elasticsearch对中文的分词不太智能,它现在的分词只是简单的安照每个中文字符来分,那如果我们想让elasticsearch的搜索能更智能一点,分析出我们搜索的关键字是否有含义,然后只搜这些有含义的词语,比如“中国人”,“中国”,“人”,这样的话我们要做什么操作才能让elasticsearch支持呢?这个就是我们接下来要探讨的问题了。
其实这个问题对elasticsearch来说是很好解决的,我们只需要换一个分词算法就可以了,但是为了让大家对elasticsearch的搜索过程和底层的分词原理有一个比较深刻的了解,我们不忙着切换其他分词算法,而是先来看看全文检索的一些基础知识,不然的话大家也仅仅只停留在会用的阶段,都不知道它底层做了什么事情。

数据类型

在详细了解全文搜索前,我们先来看看平时我们开发一个应用会遇到什么样的数据,这些数据是属于什么类型的,通过对这些数据的了解,我们接下来才能知道全文搜索&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值