Solr搜索引擎(2)Solrj

来源:互联网 发布:笔记本电脑咋下载软件 编辑:程序博客网 时间:2024/06/13 21:25

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();
原创粉丝点击