pom中添加依赖:文章来源:https://www.toymoban.com/news/detail-506721.html
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.2.1</version>
</dependency>
提供一个demo:文章来源地址https://www.toymoban.com/news/detail-506721.html
package com.xiaobai.util;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
/**
* @Author xiaobai
* @Date 2023/6/25 9:35
* @Title: SolrUtil
* @Package com.xiaobai.util
* @description:
*/
public class SolrUtil {
/**
* 获取SolrClient
* solrj 6.5及以后版本获取方式
*
* @return
*/
public static HttpSolrClient getSolrClient(String url) {
/*
* 设置超时时间
* .withConnectionTimeout(10000)
* .withSocketTimeout(60000)
*/
return new HttpSolrClient.Builder(url)
.withConnectionTimeout(10000)
.withSocketTimeout(60000)
.build();
}
}
package com.xiaobai.util.main;
import com.xiaobai.util.SolrUtil;
import org.apache.commons.math3.stat.descriptive.summary.Product;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.FieldAnalysisRequest;
import org.apache.solr.client.solrj.response.AnalysisResponseBase;
import org.apache.solr.client.solrj.response.FieldAnalysisResponse;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.SolrParams;
import java.io.IOException;
import java.util.*;
/**
* @Author xiaobai
* @Date 2023/6/25 9:37
* @Title: TestSolr
* @Package com.xiaobai.util.main
* @description:
*/
public class TestSolr {
private final static String BASE_URL = "http://127.0.0.1:8983/solr";
private final static String CORE_NAME = "hello_world";
public static void query() throws Exception {
// TODO Auto-generated method stub
HttpSolrClient client = SolrUtil.getSolrClient(BASE_URL);
Map<String, String> param = new HashMap<String, String>();
param.put("q", "*:*");// 查询条件
param.put("start", "0");
param.put("rows", "2000000");// 返回记录数
SolrParams sparam = new MapSolrParams(param);// 查询参数
QueryResponse res = client.query(CORE_NAME, sparam);
SolrDocumentList result = res.getResults();// 获取结果
for (SolrDocument document : result) {// 遍历返回结果
System.out.println("name==" + document.get("name") +
"id==" + document.get("id"));
}
}
public static void add() throws SolrServerException, IOException {
//构造一篇文档(对象)
SolrInputDocument document = new SolrInputDocument();
//往doc中添加字段,在客户端这边添加的字段必须在服务端中有过定义
document.addField("id", "88888888");
document.addField("name", "可可爱爱没有脑袋");
//获得一个solr服务端的请求,去提交 ,选择具体的某一个solr core
HttpSolrClient solr = new HttpSolrClient.Builder(BASE_URL + CORE_NAME).build();
solr.add(document);
solr.commit();
solr.close();
}
/**
* 根据id从索引库删除文档
*/
public static void deleteById(String id) throws Exception {
//选择具体的某一个solr core
HttpSolrClient server = new HttpSolrClient.Builder(BASE_URL + CORE_NAME).build();
//删除文档
//server.deleteById("036cd386-fbb0-4dde-8c47-f580b938538e");
server.deleteByQuery("id:"+id);
//删除所有的索引
//solr.deleteByQuery("*:*");
//提交修改
server.commit();
server.close();
}
public static List<String> getAnalysis(String sentence) {
SolrClient client = SolrUtil.getSolrClient(BASE_URL);
FieldAnalysisRequest request = new FieldAnalysisRequest("/"+CORE_NAME+"/query");
request.addFieldName("name");// 字段名,随便指定一个支持中文分词的字段
request.setFieldValue("");// 字段值,可以为空字符串,但是需要显式指定此参数
request.setQuery(sentence);
FieldAnalysisResponse response = null;
try {
response = request.process(client);
} catch (Exception e) {
e.printStackTrace();
}
List<String> results = new ArrayList<String>();
Iterator<AnalysisResponseBase.AnalysisPhase> it = response.getFieldNameAnalysis("name").getQueryPhases().iterator();
while (it.hasNext()) {
AnalysisResponseBase.AnalysisPhase pharse = it.next();
List<AnalysisResponseBase.TokenInfo> list = pharse.getTokens();
for (AnalysisResponseBase.TokenInfo info : list) {
results.add(info.getText());
}
}
return results;
}
}
到了这里,关于【Solr】中间件-solr快速使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!