文档章节

solr6.3根据搜索关键词词频(关键词出现次数、关键词highlight)进行排序

fmpoffice
 fmpoffice
发布于 2017/02/11 11:42
字数 719
阅读 1712
收藏 0
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接口实现。【不懂的可以留言,欢迎共同研究SOLR。QQ:381395342,备注:solr】

© 著作权归作者所有

fmpoffice

fmpoffice

粉丝 1
博文 7
码字总数 2626
作品 0
私信 提问
TF-IDF与余弦相似性的应用(一):自动提取关键词

这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题。 有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extraction),完全不加以人工干预,请问怎样才能正确做...

阮一峰
2013/03/15
0
0
TF-IDF与余弦相似性的应用(一):自动提取关键词

转自:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html 这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题。 有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyph...

泳泳啊泳泳
2018/01/07
0
0
浅析纯粹为SEO优化文章的几种方式

首先请明白本文标题的含义,这里要讲的只是在纯粹为了seo而优化文章的情况。第二,本文所介绍的方式并不能生搬硬套到实际的文章优化工作中去。第三,过分的为了 网站seo优化刻意的优化文章可...

逐浪CMS建站
2011/09/16
184
0
对搜索引擎开源项目的代码分析——索引(2)

上文中已经分析了索引的一部分,接下来将继续学习索引的部分; // 归并查找各个搜索键出现文档的交集// 从后向前查保证先输出DocId较大文档indexPointers := make([]int, len(table))for iTa...

wxwei100
2014/06/06
252
0
如何用R分析CNKI文献关键词词频?

疑惑 《如何用VOSviewer分析CNKI数据?》一文发布后,有同学问我: 王老师,我有个问题,我用cnki导出关键词后,想统计关键词的词频,我应该用什么样的工具?如果不利用citespace和python,做...

王树义
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部