zoukankan      html  css  js  c++  java
  • solr搜索之搜索精度问题我已经尽力了!!!

    solr搞了好久了,没啥进展,没啥大的突破,但是我真的尽力了!

    solr7可能是把默认搜索方式去掉了,如下:

    在solr7里找了半天以及各种查资料也没发现这个默认搜索方式,后来想,可能是被edismax里的mm取代了吧,都是控制搜索精度的,如下:

    这个mm还是挺解决问题的,但是对于我们公司来说就差那么一点,就一点。就这一点我没有解决。正常情况下这个参数能满足大部分需求。它有好多赋值的方式,具体自己参考:点击打开链接

    拿我做的举例:商品搜索。

    我的主搜索是这样的:product_goods_name:电脑^3 OR (product_goods_name:电脑 AND product_category_name:电脑)^1.5

    为什么这么写呢,举个例子,比如说搜电脑,如果按照普通的搜索语句product_goods_name:电脑,搜到的商品可能是电脑包,电脑桌等商品排在前面,明显这不是我们想要的,后来发现每种商品都有属于自己的分类,比如电脑的分类是“电脑,办公”所以干脆让分类也作为查询条件吧,于是就写成这样了。

    至于为什么还加了权重,再举个例子,不如说搜电脑桌,不加权重搜到的商品可能是电脑,明显这不是我们想要的,所以总而言之就是商品名匹配为重,分类匹配为辅。

    那么问题就来了,这样做就严重影响了mm的效果,它针对的是单一域,而我的显然不是单一域,所以有时候搜一些商品如果库里的产品匹配度达不到你设定的值,那么它就会匹配分开的词,比如说你搜一个“儿童食品”,库里没有达到你的匹配度的商品,那么它就会搜出商品名包含“儿童”或者“食品”的商品,这就范围大了去了,所以到现在还没找到解决办法,愁!

  • 相关阅读:
    倒计时浏览器跳转JavaScript
    C#.NET中使用存储过程的方法及其优点
    利用GridView控件导出其他文件(导出Excel,导出Word文件)
    c#.net用JavaScript实现 时钟显示
    程序执行一半后可以跳出对话框选择是否继续执行
    FreeMarker 中文官方参考手册 For Freemarker 2.3.23
    Spring技术内幕之Spring Data JPA-自定义Repository实现
    ehcache入门基础示例
    SpringData JPA 接口和方法
    Springboot中使用缓存
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/9335469.html
Copyright © 2011-2022 走看看