Solr同义词不正常

时间:2012-06-27 15:56:54

标签: solr synonym

我们有一个大型餐厅菜单数据库,用户可以在其中搜索菜单项。有许多项目,当这些单词并排时,它是一道独特的菜肴,但这些单词非常常见并且遍布整个地方。

示例:用户想要搜索“奶酪牛排” 在数据库中...它可以是“cheesesteak”或“cheese steak”

在我的同义词文件中,我有:

cheesesteak     => cheesesteak, cheese steak
cheese steak    => cheesesteak, cheese steak

当我搜索“cheesesteak”时,我得到了有效的结果。我得到的菜单项目有“奶酪牛排”和“奶酪牛排”(单词并排)

但是当我搜索“奶酪牛排”时,我会得到各种不相关的结果,例如“牛排沙拉配蓝纹奶酪”,它会用奶酪和牛排来挑选任何东西

有没有办法配置这个同义词文件,以便它有效?我不想强迫用户输入引号等。

2 个答案:

答案 0 :(得分:1)

您正在寻找的是邻近搜索,通过正确的排序和单词距离来提高得分。来自Solr FAQ

  

可以使用草率短语查询来完成邻近搜索。越接近   这两个术语一起出现在文档中,得分越高   将会。一个草率的短语查询指定一个最大的“slop”,或者   需要移动令牌数量以获得匹配。

     

标准请求处理程序的此示例将查找所有文档   “蝙蝠侠”出现在“电影”的100个字内:

     

q = text:“蝙蝠侠电影”~100

答案 1 :(得分:0)

你应该做的是使用edismax并让boosting显示最相关的文档。如果您使用+cheese +steak ("cheesesteak"^100 "steak cheese"^50)

等所有字词添加提升式查询或可选短语,也可以使用标准处理程序执行此操作