11.solr学习速成之MoreLikeThis
Solr相似匹配
查询参数
public static void addIndex(){HttpSolrClient server = solrServer.getServer();List<ProductBO> list = new ArrayList<>();ProductBO bo1 = new ProductBO();bo1.setId("1001");bo1.setTitle("海尔模卡 (MOOKA) 65K5 65寸安卓智能网络窄边框全高清LED液晶电视");bo1.setMajor_s("家用电器");bo1.setSubMajor_s("电视");bo1.setBrand_s("海尔");bo1.setModel_s("65K5");bo1.setPrice_i(5400);list.add(bo1);bo1 = new ProductBO();bo1.setId("1002");bo1.setTitle("三星 (SANSUNG) UA55JU5900JXXZ 55英寸 4K超高清智能 LED液晶电视 黑色");bo1.setMajor_s("家用电器");bo1.setSubMajor_s("电视");bo1.setModel_s("UA55JU5900");bo1.setBrand_s("三星");bo1.setPrice_i(6400);list.add(bo1);bo1 = new ProductBO();bo1.setId("2001");bo1.setTitle("格力(GREE) 大1匹 变频 Qbo 壁挂式冷暖空调 KFR-26GW/(26596)FNAa-A3");bo1.setMajor_s("家用电器");bo1.setSubMajor_s("空调");bo1.setBrand_s("格力");bo1.setModel_s("KFR-26GW/(26596)FNAa-A3");bo1.setPrice_i(7700);list.add(bo1);bo1 = new ProductBO();bo1.setId("2002");bo1.setTitle("奥克斯(AUX) 正1.5匹 冷暖 定速 隐藏式显示屏 壁挂式 空调 KFR-35GW/HFJ+3");bo1.setMajor_s("家用电器");bo1.setSubMajor_s("空调");bo1.setBrand_s("奥克斯");bo1.setModel_s("KFR-35GW/HFJ+3");bo1.setPrice_i(6600);list.add(bo1);bo1 = new ProductBO();bo1.setId("2003");bo1.setTitle("海尔(HAIER) 1.5匹 变频 静音空调 冷暖 壁挂式空调 KFR-35GW/01JDA23A");bo1.setMajor_s("家用电器");bo1.setSubMajor_s("空调");bo1.setBrand_s("海尔");bo1.setModel_s("KFR-35GW/01JDA23A");bo1.setPrice_i(9600);list.add(bo1);try {server.addBeans(list);server.commit();} catch (SolrServerException | IOException e) {e.printStackTrace();}}
package morelikethis; import java.io.Serializable; import org.apache.solr.client.solrj.beans.Field; public class ProductBO implements Serializable{private static final long serialVersionUID = 1L;@Fieldprivate String id;@Fieldprivate String title;@Fieldprivate String major_s;@Fieldprivate String subMajor_s;@Fieldprivate String brand_s;@Fieldprivate int price_i;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getMajor_s() {return major_s;}public void setMajor_s(String major_s) {this.major_s = major_s;}public String getSubMajor_s() {return subMajor_s;}public void setSubMajor_s(String subMajor_s) {this.subMajor_s = subMajor_s;}public String getBrand_s() {return brand_s;}public void setBrand_s(String brand_s) {this.brand_s = brand_s;}public int getPrice_i() {return price_i;}public void setPrice_i(int price_i) {this.price_i = price_i;} }
package morelikethis; import java.util.ArrayList; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.util.SimpleOrderedMap; import solr.solrServer; public class SolrMlt {@SuppressWarnings("unchecked")public static void search(){HttpSolrClient server = solrServer.getServer();SolrQuery query = new SolrQuery();List<ProductBO> articles = new ArrayList<ProductBO>();query.setQuery("id:1001").setParam("fl", "id,title,brand_s")//返回的字段.setParam("mlt", "true")//打开组建.setParam("mlt.fl", "title")//用于判断相似的字段.setParam("mlt.mindf", "1")//过滤文档数小于1的文档集合.setParam("mlt.mintf","1")//过滤单个文档中关键字小于1的文档.setParam("mlt.count", "10");QueryResponse queryResponse;try {queryResponse = server.query(query);SimpleOrderedMap<SolrDocumentList> mltResults = (SimpleOrderedMap<SolrDocumentList>) queryResponse.getResponse().get("moreLikeThis");for(int i=0;i<mltResults.size();i++){SolrDocumentList items = mltResults.getVal(i);for (SolrDocument doc : items) {String id = doc.getFieldValue("id").toString();if(id.equals("1001")){continue;//排除自身 }System.out.println(doc.getFieldValue("title").toString());}}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {search();} }
转载于:https://www.cnblogs.com/itliucheng/p/6898727.html
11.solr学习速成之MoreLikeThis相关推荐
- 20145231 《信息安全系统设计基础》第11周学习总结
20145231<信息安全系统设计基础>第11周学习总结 教材学习内容总结 异常 异常是异常控制流的一种形式,由硬件和操作系统实现.简单来说,就是控制流中的突变. 出现异常的处理方式: 1 ...
- 20175310 《Java程序设计》第11周学习总结
20175310 <Java程序设计>第11周学习总结 教材学习内容总结 学习中的问题和解决过程 问题1:在做简易计算器时,测试乘法出错,如下图,显示格式错误: 问题1解决方案: 检查代码 ...
- 2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结
2017-2018-1 20155330 <信息安全系统设计基础>第11周学习总结 教材学习内容总结 物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每字 ...
- 20145313张雪纯《信息安全系统设计基础》第11周学习总结
20145313张雪纯<信息安全系统设计基础>第11周学习总结 教材 异常控制流(ECF) 最简单的"平滑序列"类型的控制流是指PC中相邻的指令在存储器中也相邻.而异常 ...
- 学号20145209《信息安全系统设计基础》第11周学习总结
学号20145209<信息安全系统设计基础>第11周学习总结 教材学习内容总结 教材学习内容总结 第八章 异常控制流 1.从给处理器加电开始,直到断点为止,程序计数器假设一个值的序列 a0 ...
- 201521123014 《Java程序设计》第11周学习总结
201521123014 <Java程序设计>第11周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 Q1 互斥访问与同步访 ...
- C++11/14学习(二)类型推导
C++11/14学习(二)类型推导 C++11 引入了 auto 和 decltype 这两个关键字实现了类型推导,让编译器来操心变量的类型. 这使得 C++ 也具有了和其他现代编程语言一样,某种意义 ...
- Linux-0.11内核学习-添加系统调用
1.参考资料 赵炯博士的网站oldlinux Linux内核完全注释 Linux0.11 源码 2.概要 操作系统作为软件应用层和底层硬件之间的部分,向下提供服务,向上提供接口.系统调用便是操作系统向 ...
- HALCON 21.11:学习笔记---OPC_UA(I/O)
HALCON 21.11:学习笔记---OPC_UA(I/O) 本章主要提供有关OPC_UA的信息. 系统要求 Intel compatible PC with Windows 7 (32-bit o ...
最新文章
- 代码覆盖率原理分析:sys.settrace流程分析
- SAP PM IW33里查看维护订单相关的维护计划
- cdoj916-方老师的分身 III 【拓扑排序】
- 高效的沟通方式-会议
- .NET开源工作流驰ccflow从表数据数据源导入设置
- 用 Python脚本生成 Android SALT 扰码
- 改变eclipse工程中代码的层次结构
- SAP 移动类型详解
- hide subscribers is a good approach if you have a very limited subscribers
- python学习day2:类与对象
- 专题导读:空天大数据
- TensorFlow 教程 --教程--2.4MNIST 进阶
- Xpath string()提取多个子节点中的文本
- vue.js 模板语法
- Sphinx API文档例子
- iOS中 H5的input输入框focus()无法自动拉起键盘(解决方法)
- 三角网格上高斯曲率和平均曲率
- C#大作业-通讯录管理系统
- html调用js里面的函数,html如何调用js函数
- 怎样在电脑桌面上设置员工生日提醒 每年准时提醒生日的便签
热门文章
- 写代码用什么笔记本_1—2千预算,编程、写代码、办公、PS修图笔记本推荐/选购指南...
- ubuntu 文件及子文件夹的权限的查看及修改
- 概述--Nginx集成Vcenter 6.X HTML Console系列之 1--(共4)
- 基本数据结构之Sort
- Android Studio 1.1.0汉化初步出炉!
- 上海交通大学2002年数学分析考研试题
- C# 关于yield return的研究(转载)
- Visual Studio 2010修改授权
- Team Foundation 和 Visual SourceSafe 之间的区别
- LeetCode7. 整数反转