4.solr学习速成之bean
以bean的形式提交索引,以bean的形式查询出来
package com.liucheng.solr;
import java.io.Serializable;
import org.apache.solr.client.solrj.beans.Field;
public class student implements Serializable{
private static final long serialVersionUID = 1L;
@Field
private String id;
@Field
private String name_s;
@Field
private int score_i; public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName_s() {
return name_s;
}
public void setName_s(String name_s) {
this.name_s = name_s;
}
public int getScore_i() {
return score_i;
}
public void setScore_i(int score_i) {
this.score_i = score_i;
}
}
其中field的值必须要在scheme.xml中配置,因为该文件中已经有id和动态field的配置,这里就不用配置
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
<dynamicField name="*_s" type="string" indexed="true" stored="true" />
测试类:
package com.liucheng.solr;
import java.io.IOException;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
public class solrTest {
public static void addIndex(){
HttpSolrClient server = solrServer.getServer();
student stu = new student();
stu.setId("1005");
stu.setName_s("wanglc5");
stu.setScore_i(885);
try {
server.addBean(stu);
server.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
public static void delete(){
HttpSolrClient server = solrServer.getServer();
try {
server.deleteById("1001");
server.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
public static void search(){
HttpSolrClient server = solrServer.getServer();
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
query.setStart(0);
query.setRows(5);
QueryResponse queryResponse;
try {
queryResponse = server.query(query);
List<student> list = queryResponse.getBeans(student.class);
System.out.println("num = "+list.size());
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getName_s());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//addIndex();
//delete();
search();
}
}
solrserver:
package com.liucheng.solr;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
public class solrServer {
private solrServer(){};
final static String SOLR_URL = "http://localhost:8080/solr/test";
private static HttpSolrClient server = null;
public static HttpSolrClient getServer(){
if(server == null){
server = new HttpSolrClient(SOLR_URL);
server.setDefaultMaxConnectionsPerHost(1000);
server.setMaxTotalConnections(10000);
server.setConnectionTimeout(60000);
server.setSoTimeout(60000);
server.setFollowRedirects(false);
server.setAllowCompression(true);
}
return server;
}
}
4.solr学习速成之bean的更多相关文章
- 2.solr学习速成之安装
1.下载解压solr-5.3.1.tgz [root@205 opt]# tar -zxf solr-5.3.1.tgz -C /opt/module/ 2.将solr-5.3.1/server/so ...
- 13.solr学习速成之IK分词器
IKAnalyzer简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包. IKAnalyzer特性 a. 算法采用“正向迭代最细粒度切分算法”,支持细粒度和最大词长两 ...
- 12.solr学习速成之dataimport
solr除了利用solrj建立索引外,还可以由列式数据库hbase触发器添加索引,自动全量或者增量索引关系数据库数据等. dataimport可以配置从任何关系数据库导入索引 1.将jar包拷贝到to ...
- 11.solr学习速成之MoreLikeThis
Solr相似匹配 在网页搜索或电商产品搜索结果页面,很多时候会看到一个相似文档.相似产品或找相似的链接.Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeT ...
- 10.solr学习速成之高亮显示
Solr高亮显示的三种实现 高亮显示在搜索中使用的比较多,比较常用的有三种使用方式,如果要对某field做高亮显示,必须对该field设置stored=true . 第一种是普通的高 ...
- 9.solr学习速成之group
Group与Facet的区别 facet的查询结果主要是分组信息:有什么分组,每个分组包括多少记录:但是分组中有哪些数据是不可知道的,只有进一步搜索. group则类似于关系数据库的g ...
- 8.solr学习速成之FacetPivot
什么是Facet.pivot Facet.pivot就是按照多个维度进行分组查询,是Facet的加强,在实际运用中经常用到,一个典型的例子就是商品目录树 NamedList解释: NamedList ...
- 7.solr学习速成之facet
Facet 介绍 Facet 是 solr 的高级搜索功能之一 ,可以给用户提供更友好的搜索体验,在搜索关键字的同时 , 能够按照 Facet 的字段进行分组并统计. 比如你上淘宝, ...
- 6.solr学习速成之multicore查询
查询关联多个core 再新建一个core 向每个core添加索引,修改 final static String SOLR_URL = "http://localhost:8080/solr/ ...
随机推荐
- 四十 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)倒排索引
倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录.这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址.由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引 ...
- python----异常处理(二)
格式如下: try: pass except Exception as e:#如果上面出错,执行下面代码 pass else:#try如果没出错执行此下面代码 pass fin ...
- 转:大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
虽然比较久,但是这套架构已经很成熟了,记录一下 一般数据流向,从“数据采集--数据接入--流失计算--数据输出/存储”<ignore_js_op> 1).数据采集 负责从各节点上实时采集数 ...
- 【scala】构造器
和Java或C++一样,Scala可以有任意多的构造器. 不过Scala类有一个构造器比其他所有构造器都更为重要,它就是主构造器. 除了主构造器之外,类还可以有任意多的辅助构造器. 主构造器 在Sca ...
- flask 项目 部署服务器,package安装问题(无外网链接)
1.安装所需的环境/包 1) 在一台开发机器(有网络,编译成功)安装package: pipreqs 语法: pipreqs <项目路径> 将项目所使用的所有包目录将会导出至目录:requ ...
- LeetCode OJ:Excel Sheet Column Number(表格列数)
Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, retur ...
- String、StringBuffer、StringBuilder分析(jdk8)
以下代码只挑选了关键方法进行分析 public final class String //String类不可继承,实现了序列化 implements java.io.Serializable, Com ...
- CFile与CArchive区别
一,区别 CFile是直接与磁盘打交道的一个文件对象,可以处理文本和二进制文件 CArchive将CFile作为自己的一个参数,通过该参数可以实现文本,二进制甚至继承至COject对象的类的本地存储和 ...
- I-O流概念认知升级
在文件操作基础入门中,我们提到了流的 概念,这篇我们将更多的介绍流这个东西,以及C的I/O相关知识 现在,我们从C程序员最熟悉的printf函数开始学习I/O流. 我们对printf函数一直是很喜爱的 ...
- HTTrack - 克隆任意网站
HTTrack可以克隆指定网站-把整个网站下载到本地. 可以用在离线浏览上,也可以用来收集信息(甚至有网站使用隐藏的密码文件). 一些仿真度极高的伪网站(为了骗取用户密码),也是使用类似工具做的. K ...