Solr搜索引擎(2)Solrj

1、创建core

solr的core类似于mysql的表,如下创建名为testcore的core

$ bin/solr create -c testcore

2、创建solr连接客户端

private static final String urlString = "http://192.168.100.27:8983/solr/testcore";
private static SolrClient solr = new HttpSolrClient.Builder(urlString).build();

3、添加/更新索引

SolrInputDocument doc = new SolrInputDocument();
//默认id为主键,当id存在时更新数据,否则添加数据
doc.addField("id", "3");
doc.addField("name", "hello world test");
doc.addField("age", "1");
doc.addField("addr", "1111");
solr.add(doc);
solr.commit();

4、删除索引

//通过id删除索引
solr.deleteById("3");
//通过搜索条件删除索引
//solr.deleteByQuery(query);
solr.commit();

5、查询

SolrQuery query = new SolrQuery();
// *标示多个任意字符,?标示单个任意字符,~模糊搜索
query.setQuery("*:*");    //全搜索
//query.setQuery("name:你好世?");   
//query.setQuery("name:你好我号~");   //搜索相似的结果
//query.setQuery("name:你好我号~0.5");    //搜索相似度为0.5的结果
//query.setQuery("age:[1 TO 3]"); //范围搜索,包括边界
//query.setQuery("age:{0 TO *}"); //范围搜索,不包括边界
//query.setQuery("*:* AND name:*好*");     //组合搜索
//query.setQuery("NOT name:*好*");     //不匹配搜索
//query.setQuery("-name:*好*");        //同NOT
//query.setQuery("+name:hello* OR age:[1 TO 3]"); //+表示该条件必须符合
//query.set("fl", "id","name");   // 只获取字段id,name
//query.set("fl", "id,name");   // 同上,只获取字段id,name
//query.addSort("id", ORDER.desc);    //排序

// 分页
query.setStart(0);
query.setRows(10);

QueryResponse queryResponse = solr.query(query);

SolrDocumentList docs = queryResponse.getResults();
Iterator<SolrDocument> iter = docs.iterator();
while(iter.hasNext()){
    SolrDocument doc = iter.next();
    System.out.println(doc.toString());
}
solr.commit();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值