长句搜索(整句搜索)的思路"/>
搜索引擎长句搜索(整句搜索)的思路
长句搜索(整句搜索)是一个看上去很复杂的问题。具体解决这个问题的思路如下:
首先明确一下需求,即在搜索一个句子是,搜索结果必须包含整个句子。
(1)从query中找到长句搜索,并定义类型。
比如
歌词比较多“你是风儿 我是沙”等等
名人名言比较多,“富贵险中求”等等。
小学生题目搜索比较多,“等边三角形三条边长度为3,中垂线..."
...
可以想见,能进行长句搜索,必须是比较刚需,才有可能。
(2)对这些query后,用户的实际点击进行收集,抓取
进行分类,歌词类,名人名言类...
(3) 最重要的一点就是,如何索引,答案是:“不分词”,采用类似走进搜索引擎书中提到的shingle的办法,做索引。
例如,"等边三角形三条边长度为3..."这个,则按照每7个词做一个shingle切分,将得到"等边三角形三条","边三角形三条边","三角形三条边长"...余不举例。
这些都作为这个文档的索引,看上去不是term索引,就命名为shingle索引吧,当用户搜索题目答案时,也进行类似的shingle的方法,由于具备长句搜索的语料都是有限的,歌词,名人名言,小学生答案,因此不分词的做法并不会大大降低效率,反而能够快速检索的想要的内容,不会因为query中都是common term而使得后续索引解压,求交浪费无谓算力。
(4)query出的结果,进行整句的匹配,匹配度最高的,完全匹配的则优先给出。
以上想法仅是pennyliang个人参悟,不代表任何单位立场,欢迎交流讨论。
原文发在水木社区上:.php?bid=715&id=20405
同主题展开,可以看到更多讨论:.php?board=SearchEngineTech&gid=20405
今天译作:麦迪离队 分手火箭
更多推荐
搜索引擎长句搜索(整句搜索)的思路
发布评论