首先导入solrj需要的jar包
之后创建一个web项目(具体创建过程就不演示了)将jar导入 并创建一个类 稍后链接时候使用
接下来需要配置下core核心文件中的schema.xml文件
(schema.xml文件需要将同目录下的 managed-schema 改名而来)
自定义如下几个字段 将type 类型变成IK分词名称
name:字段名
type:之前定义过的各种FieldType
indexed:是否被索引
stored:是否被存储(如果不需要存储相应字段值,尽量设为false)
multiValued:是否有多个值(对可能存在多值的字段尽量设置为true,避免建索引时抛出错误)
配置上面之后(也是在schema.xml文件中添加)
将所有的 全文本 字段复制到一个字段中,以便进行统一的检索 如图
在solrconfig.xml中配置默认搜素域,这样我们就可以按照我们自己的域进行搜索如图
配置已经完成 接下来我们就可以进行代码的CRUD操作了
solrj在链接本地的core核心配置文件时候地址不用输入admin.html 就可以链接成功
配置core核心配置文件方法可参考 :solr 部署tomcat和core核心文件配置
1.链接本地core 并创建数据
public static void create() throws Exception{
//链接到本地的core1核心文件
String URL="http://127.0.0.1/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
//创建数据
SolrInputDocument doc=new SolrInputDocument();
doc.addField("id", "1");
doc.addField("msg_title", "亮式企业");
doc.addField("msg_content", "这是一个伟大的企业");
server.add(doc);
server.commit();
}
启动tomcat 页面查看 显示 链接成功 并且创建成功
2.查询
public static void query() throws Exception{
String URL="http://127.0.0.1/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
//定义查询内容 * 代表查询所有 这个是基于结果集
SolrQuery query = new SolrQuery("亮"); //定义查询内容
query.setStart(0);//起始页
query.setRows(3);//每页显示数量
QueryResponse rsp = server.query( query );
SolrDocumentList results = rsp.getResults();
System.out.println(results.getNumFound());//查询总条数
for(SolrDocument doc:results){
System.out.println(doc);
}
}
查询结果如下
3.删除
public static void Del() throws Exception{
//链接到本地的core1
String URL="http://127.0.0.1/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
//删除所有分词
server.deleteByQuery("*:*");
//根据id删除所有分词
// server.deleteById("2");
server.commit();//先删除 基于query的删除 会删除所有建立的索引文件
}
初步的了解 不足之处多多交流