solr6.3根据搜索关键词词频(关键词出现次数、关键词highlight)进行排序
http://localhost:8080/solr/test/select?fq=product_name:大有&indent=on&q=product_name:大有电钻 OR raws_title:大有电钻&rows=45&wt=json
使用q进行分别进行两个字段查询,得出的结果有很多,包括很其他品牌的商品:博世、喜利得、林君等各类品牌的“电钻”。如果需要进行精准的品牌查询,那就需要建立一个品牌词词库,也是通过slor进行code添加一套,然后在solrj进行编写逻辑,把拆词的内容到品牌词库再搜索一次,如果包含则说明用户输入了指定的品牌商品。【有空补上代码】
然后把得出来的品牌词,通过fq进行过滤筛选,得出的内容将会是该商品的所有相关品牌。
目前的情况是:有一些商品的排序太靠后面了,需求是:能否根据“电钻”的出现次数进行排序靠前处理。

整个国内对于solr的支持太少了,动不动就收费,收费给出来的结论也是大忽悠,看好了,要开始车了。
首先我们要掌握“termfreq”函数,这个是solr已实现的方法,使用如:termfreq(raws_title,*电钻*)
termfreq("字段","词频搜索的关键词"),得出的结果是:

根据这个,我们可以把这个函数放到sort进行排序。在sort中填写:termfreq(raws_title,*电钻*) desc
如图,这样就实现了solr根据搜索关键词的词频或出现次数进行排序了。

【注意】我们可以根据这个原理进行复杂的得分计算,例如product_name出现“电钻”得分会更高,可以结合Solr的函数查询(FunctionQuery)进行实现。
例如:
product,product(x,y,...)将会返回多个函数的乘积。
格式:product(2,2)
输出结果:4
sum,这个函数的意思就显而易见啦,它就是表示“和”。
格式:sum(4,1)
输出结果:5
我们可以根据该函数实现自定义的评分:
sum(product(termfreq(product_name,*电钻*),20),termfreq(raws_title,*电钻*)) desc
结果完满展现:

题外话,在搜索过程中,需要更多的精准匹配,可以同样从“同义词”入手,等我研究出成果,再和大家一起分享。
对于solrj整合这个关键词词频排序,也是非常简单的,你们会java的应该会了吧,其实就是调用solr自身的api接口实现
solr6.3根据搜索关键词词频(关键词出现次数、关键词highlight)进行排序的更多相关文章
- Excel中COUNTIFS函数统计词频个数出现次数
Excel中COUNTIFS函数统计词频个数出现次数 在Excel中经常需要实现如下需求:在某一列单元格中有不同的词语,有些词语相同,有的不同(如图1所示).需要统计Excel表格中每个词语出现的 ...
- spark-sql缩减版样例:获取每日top3搜索词和各自的次数,包括总次数
//获取出每天前3的搜索词 ArrayList<String> log = new ArrayList<String>(); log.add("2015-10-01, ...
- 【Vue.js】基于vue的实时搜索,在结果中高亮显示关键词
一.搜素效果如下: 二.核心 1)利用oninput属性来触发搜素功能 2)利用RegExp来对字符串来全局匹配关键字,利用replace方法来对匹配的关键字进行嵌入高亮的<span class ...
- 在hadoop上进行编写mapreduce程序,统计关键词在text出现次数
mapreduce的处理过程分为2个阶段,map阶段,和reduce阶段.在要求统计指定文件里的全部单词的出现次数时. map阶段把每一个关键词写到一行上以逗号进行分隔.并初始化数量为1(同样的单词h ...
- solr6.6 高级搜索Facet
1.介绍 facet分面查询是solr中以导航为目的的查询,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步实现渐进式精确搜索. 什么字段适合用facet呢? fa ...
- hdu 1728 搜索求最少的转向次数
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 推荐召回--基于内容的召回:Content Based
目录 1. 前言 2. 构建画像 3. 内容召回的算法 1. 前言 在之前总结过协同过滤的召回通路后,今天我们来总结下召回策略中的重头戏:基于内容的召回通路,也即我们常说的基于标签的召回.这里就要涉及 ...
- WordPress如何屏蔽恶意关键词搜索
我们在用WordPress建站比较方便,但如果网站有一定的权重后,一些不怀好意的人就会过来制作恶意内容,比如故意搜索邪恶的关键词.垃圾评论等,那我们如何屏蔽恶意搜索关键词呢?不会很难,会写点代码的朋友 ...
- JavaScript在表格中模拟搜索多关键词搜索和筛选
模拟搜索需要实现以下功能: 1.用户的模糊搜索不区分大小写,需要小写字母匹配同样可以匹配到该字母的大写单词. 2.多关键词模糊搜索,假设用户关键词以空格分隔,在关键词不完整的情况下仍然可以匹配到包含该 ...
随机推荐
- ThreadLocal讲解
一.前言 ThreadLocal这个对象就是为多线程而生的,没有了多线程ThreadLocal就没有存在的必要了.可以将任何你想在每个线程独享的对象放置其中,并在任何时候取出来. 二.基本用法 Thr ...
- 【论文解读】行人检测:What Can Help Pedestrian Detection?(CVPR'17)
前言 本篇文章出自CVPR2017,四名作者为Tsinghua University,Peking University, 外加两名来自Megvii(旷视科技)的大佬. 文章中对能够帮助行人检测的ex ...
- ScrollView在布局中的作用
ScrollView就是滚动一个View,将View里面的内容滚动起来. 但是由于scroolview只能有一个孩子,因此我们可以在ScrollView中在定义一个布局. 这样的话,我们就会直接滚动整 ...
- Hadoop storm大数据分析 知识体系结构
最近工作工作有用到hadoop 和storm,最近看到一个网站上例句的hadoop 和storm的知识体系.所以列出来供大家了解和学习.来自哪个网站就不写了以免以为我做广告额. 目录结构知识点还是挺全 ...
- C语言指针和操作系统的逻辑地址
你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干.只有在Intel实模式下,逻辑地址才和物理地址相等 ...
- java安全性-引用-分层-解耦
Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用 "特洛伊"木马等欺骗手段访问对象的私有成员 访问一个对象必须通过这个对象的引用 java ...
- day27 python学习 logging
logging模块 函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging ...
- StreamSets 多线程 Pipelines
以下为官方文档: Multithreaded Pipeline Overview A multithreaded pipeline is a pipeline with an origin that ...
- php利用curl获取网页title内容
/**$html = curl_get_file_contents($url); $title = get_title_contents($html); var_dump($title);*/ fun ...
- 【转】每天一个linux命令(22):find 命令的参数详解
原文网址:http://www.cnblogs.com/peida/archive/2012/11/16/2773289.html find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使 ...