开发者社区> 问答> 正文

如何理解模糊搜索?



中文分词-模糊搜索


模糊搜索是指在用户搜索意图不明确时,搜索引擎将用户的查询(query)与待检索的内容(doc)进行模糊匹配,找出与查询相关的内容。是否相关主要从两个方面衡量:一是query是doc中某些内容的全拼或者简拼;二是query中内容直接在doc中出现。模糊搜索无法精确理解用户的查询意图,返回的结果中可能包括了一大批用户不想要的信息,所以在使用模糊搜索时一定要结合自己的实际场景,慎重使用。

适用场景


模糊搜索主要用户搜索意图不明确或者数据较少想返回更多查询结果的时候。主要包括以下场景。

拼音搜索:


拼音搜索是指doc中的数据为中文,而希望使用全拼或者简拼进行查询的搜索。比如,文档中的内容为开放搜索,用户希望查询”kaifangsousuo” 或者”kfss”时文档能够被召回。模糊搜索支持这样的功能,而且支持query的形式更丰富。以开放搜索为例,模糊搜索支持的query形式如下(注意是双引号查询):”kai”、”kaifang”、”sousuo”、 “kaifangsousuo”、”k”、”kf”、”ss”、”kfss”。注意:如果希望搜索内容在doc中是相连的,建议在查询词两边加上双引号。拼音搜索中查询词两边最好都使用双引号,这是因为用户输入的拼音是具有一定的意图的,用户搜索”kfss”(开放搜索)其实是希望这些词是要连在一起的。

前缀搜索:


前缀搜索是指搜索以指定前缀开头的内容的检索( 不支持中文前缀匹配),比如手机号码搜索。模糊搜索支持的前缀标识符为’^’,如果用户想搜以138开头的手机号,query可写成”^138”(注意是双引号查询)。不支持中文前缀匹配),比如手机号码搜索。模糊搜索支持的前缀标识符为’^’,如果用户想搜以138开头的手机号,query可写成”^138”(注意是双引号查询)。

后缀搜索:


后缀搜索是指搜索以指定后缀结尾的内容的检索( 不支持中文后缀匹配),比如手机号码搜索。模糊搜索支持的后缀标识符为’$’,如果用户想搜以9527结尾的手机号,query可以写成”9527$”(注意是双引号查询)。

单字或单字母搜索:


模糊搜索支持单字或单字母搜索,比如’开放搜索 open search’,通过’放’或者’o’都可以召回。单字或单字母这种使用场景主要是为了扩大召回结果,返回的结果可能不是很准确。

使用与限制


用户创建应用时,将需要进行模糊搜索的字段设置为short_text即可使用模糊搜索。模糊搜索返回的结果默认按照命中的词在字段的前后位置进行排序。比如某个应用的title字段需要模糊搜索,doc1的内容为开放搜索,doc2的内容为喜欢使用开放搜索,当搜索”kfss”时,doc1默认会排在doc2的前面。模糊搜索在用于查询意图不明确时能够很好满足用户的需求,但在使用过程中需要注意如下限制:

  • 模糊搜索中按照空格分隔片段,认为按照空格分开的片段在语义上是等价的,比如对电影的演员进行拼音搜索,多个演员之间是等价的,需要用空格分开。只有检索的内容处于同一个片段时,查询词两边才可以使用双引号,否则不建议使用。比如doc的short_text字段内容为‘刘德华 刘若英’,查询”ldh”或者”lry”可以把doc召回,而查询”ldh lry”或”liudehua liuruoying”是无法把doc召回的;
  • 查询时只有英文、数字和拼音支持前缀和后缀搜索,中文不支持;
  • short_text字段中的标点符号会被过滤掉;
  • short_text字段过滤掉标点符号后,[backcolor=transparent]长度限制为100个字节,超过的内容会被丢掉;
  • short_text字段可以创建下拉提示;
  • 由short_text字段创建的索引不能够使用查询分析。
  • 英文和数字及拼音不支持飘红

展开
收起
轩墨 2017-10-25 16:48:51 2478 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
《开放搜索查询分析服务架构分享》 立即下载
O2O搜索优化实践之道 立即下载
《开放搜索统一召回引擎实践》 立即下载