maven
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.10.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
增加的大体思路
- 第一,准备好一个sorl项目并启动,得到一个sorl的url。
- 第二,导入的jar包中得到sorl的客户端对象HttpSolrServer
- 第三,new一个doc对象,添加到HttpSolrServer
- 第四,提交
package lucene01;
import java.io.File;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;
import org.wltea.analyzer.lucene.IKAnalyzer;
public class FirstDemo2 {
// 创建索引
@Test
public void testSearch() throws Exception {
String baseURL="http://localhost:8081/solr/collection1";
HttpSolrServer httpSolrServer = new HttpSolrServer(baseURL);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "liuzhonghua");
doc.addField("name", "刘中华");
httpSolrServer.add(doc);
httpSolrServer.commit();
}
}
删除大体思路
得到连接,根据条件删除,后面是时间(条件也可以是*:* 表示全部)
@Test
public void testSearch2() throws Exception {
String baseURL="http://localhost:8081/solr/collection1";
HttpSolrServer httpSolrServer = new HttpSolrServer(baseURL);
httpSolrServer.deleteByQuery("name:刘中华", 100);
}
查询大体思路
@Test
public void testSearch3() throws Exception {
String baseURL="http://localhost:8081/solr/collection1";
HttpSolrServer httpSolrServer = new HttpSolrServer(baseURL);
//new 一个查询对象
SolrQuery solrQuery = new SolrQuery();
//向查询对象里面增加条件 (增加基本的查询条件,想当于 solrQuery.set("q","name:刘中华");)
solrQuery.setQuery("name:刘中华");
//增加过滤条件
// solrQuery.set("fq","desc:程序员");
//价格排序
// solrQuery.addSort("price",ORDER.desc);
//分页
solrQuery.setStart(0);
solrQuery.setRows(5);
//高亮,默认域
solrQuery.set("df", "name");
//指定只查询某个域
solrQuery.set("fl", "id,name");
//高亮显示,开启高亮
solrQuery.setHighlight(true);
//指定高亮域
solrQuery.addHighlightField("name");
//指定前缀,后缀
solrQuery.setHighlightSimplePre("<span style='color:red'>");
solrQuery.setHighlightSimplePost("</span>");
//执行查询,得到结果集,同时也得到高亮部分的结果集
QueryResponse query = httpSolrServer.query(solrQuery);
SolrDocumentList doc = query.getResults();
Map<String, Map<String, List<String>>> highlighting = query.getHighlighting();
//遍历
System.out.println(doc.getNumFound());
for(SolrDocument d : doc){
System.out.println(d.get("name"));
System.out.println(d.get("id"));
System.out.println("-----------------");
Map<String, List<String>> map = highlighting.get(d.get("id"));
List<String> list = map.get("name");
System.out.println(list.get(0));
}
}