请问有没有搜索引擎能做到Like级别的任意关键词精确查询?


举个例子,对于新闻【 http://tech.163.com/15/0323/07/ALCIH40U000915BF.html 】,在正文中,按顺序提取关键词:
1.马云私密
2.互联网行业
3.《DT(Data Technology)时代的特色》
4.鼠标和水泥

如果在百度或谷歌,输入这些关键词:
1.百度:【 https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E9%A9%AC%E4%BA%91%E7%A7%81%E5%AF%86%20%E4%BA%92%E8%81%94%E7%BD%91%E8%A1%8C%E4%B8%9A%20%E3%80%8ADT%EF%BC%88Data%20Technology%EF%BC%89%E6%97%B6%E4%BB%A3%E7%9A%84%E7%89%B9%E8%89%B2%E3%80%8B%20%E9%BC%A0%E6%A0%87%E5%92%8C%E6%B0%B4%E6%B3%A5&rsv_pq=8f3313990009c780&rsv_t=4fb7bp2xNKBTlJda3A9uEHoV8XEtXeFrN%2BefnoawqDJAyUQqlDFVFFRQSKw&rsv_enter=0&rsv_sug3=2&rsv_n=2&inputT=987&rsv_sug4=1033

2.谷歌:【 https://www.google.com.hk/search?q=%E9%A9%AC%E4%BA%91%E7%A7%81%E5%AF%86+%E4%BA%92%E8%81%94%E7%BD%91%E8%A1%8C%E4%B8%9A+%E3%80%8ADT%EF%BC%88Data+Technology%EF%BC%89%E6%97%B6%E4%BB%A3%E7%9A%84%E7%89%B9%E8%89%B2%E3%80%8B+%E9%BC%A0%E6%A0%87%E5%92%8C%E6%B0%B4%E6%B3%A5&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:zh-CN:official&client=firefox&gws_rd=ssl

搜索结果:百度的第二个搜索结果,谷歌的第一个搜索结果,就能找到。

但是,如果对关键字,再进行子串提取:
源串:
1.马云私密
2.互联网行业
3.《DT(Data Technology)时代的特色》
4.鼠标和水泥
提取子串:
1.云私
2.网行
3.《D
4.标和水

继续搜索:
1.百度:【 https://www.baidu.com/s?wd= 云私%20网行%20《D%20标和水&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=1&rsv_sug1=1&rsv_n=2】

2.谷歌:【 https://www.google.com.hk/search?q=%E4%BA%91%E7%A7%81+%E7%BD%91%E8%A1%8C+%E3%80%8AD+%E6%A0%87%E5%92%8C%E6%B0%B4&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:zh-CN:official&client=firefox&gws_rd=ssl

也没搜到。

继续:我把这篇文章的正文内容,放入数据库(MS SQL Server 2014)的文章字段,然后用SQL搜:


 Declare @关键词1 Nvarchar(Max) = '云私',
    @关键词2 Nvarchar(Max) = '网行',
    @关键词3 Nvarchar(Max) = '《D',
    @关键词4 Nvarchar(Max) = '标和水';

(Select * From 表 Where 文章 Like '%' + @关键词1 + '%')
    Intersect
(Select * From 表 Where 文章 Like '%' + @关键词2 + '%')
    Intersect
(Select * From 表 Where 文章 Like '%' + @关键词3 + '%')
    Intersect
(Select * From 表 Where 文章 Like '%' + @关键词4 + '%')

结果是能找到这篇文章的。但是

问题来了:
请问有没有搜索引擎,比如 百度、谷歌之类,
或者
有没有搜索引擎组件,比如Lucene、Sphinx、Solr、Elasticsearch之类,能够完成这种【精确】查询?

全文搜索 lucene elasticsearch 搜索引擎 百度

神无月丶绯雪 10 years, 8 months ago

子字符串已经没有意义了。正好和搜索引擎分词算法相违背。当然搜不到了,假如还支持任意汉字搜索,那岂不是有海量的不相关结果。

SolPie answered 10 years, 8 months ago

可以的,使用单字分词

AngelD奏 answered 10 years, 8 months ago

Your Answer