Java solr 分词
2024-09-05 15:39:36
代码如下:
import java.io.IOException;
import java.util.*; import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
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.SolrInputDocument;
import java.util.Set;
import java.util.List;
import java.util.Map.Entry;
import org.apache.solr.client.solrj.request.FieldAnalysisRequest;
import org.apache.solr.client.solrj.response.AnalysisResponseBase.AnalysisPhase;
import org.apache.solr.client.solrj.response.AnalysisResponseBase.TokenInfo;
import org.apache.solr.client.solrj.response.FieldAnalysisResponse;
/**
* @Author:sks
* @Description:利用solr分词组件进行分词
* @Date:Created in 14:07 2017/12/14
* @Modified by:
**/
public class splitwords {
public static void main(String []args) throws SolrServerException, IOException{ String urlString = "http://localhost:8983/solr/data";
Init(urlString);
String txt = "全党同志一定要登高望远、居安思危,勇于变革、勇于创新,永不僵化、永不停滞,团结带领全国各族人民决胜全面建成小康社会,奋力夺取新时代中国特色社会主义伟大胜利";
List<String> results = getAnalysis(txt);
for(String word :results){
System.out.println(word);
} // 全党
// 同志
// 一定
// 要
// 登高望远
// 居安思危
// 勇于
// 变革
// 勇于
// 创新
// 永不
// 僵化
// 永不
// 停滞
// 团结
// 带领
// 全国各族人民
// 决胜
// 全面
// 建成
// 小康社会
// 奋力
// 夺取
// 新时代
// 中国特色
// 社会主义
// 伟大
// 胜利 } private static SolrClient solr;
/**
* @Author:sks
* @Description:初始化solr客户端
* @Date:
*/
public static void Init(String urlString){ solr = new HttpSolrClient.Builder(urlString).build();
}
/**
* @Author:sks
* @Description:分词统计,把字符串分词并返回分词列表
* @Date:
*/
public static List<String> getAnalysis(String sentence) {
FieldAnalysisRequest request = new FieldAnalysisRequest(
"/analysis/field");
request.addFieldName("text");// 字段名,随便指定一个支持中文分词的字段
request.setFieldValue("");// 字段值,可以为空字符串,但是需要显式指定此参数
request.setQuery(sentence); FieldAnalysisResponse response = null;
try {
response = request.process(solr);
} catch (Exception e) {
e.printStackTrace();
} List<String> results = new ArrayList<String>();
Iterator<AnalysisPhase> it = response.getFieldNameAnalysis("text")
.getQueryPhases().iterator();
while(it.hasNext()) {
AnalysisPhase pharse = (AnalysisPhase)it.next();
List<TokenInfo> list = pharse.getTokens();
for (TokenInfo info : list) {
results.add(info.getText());
} } return results;
} }
最新文章
- C#为IE编写BHO插件心得
- Python地址簿
- linq 延迟执行带来的困扰
- 三台CentOS 5 Linux LVS 的DR 模式http负载均衡安装步骤
- BMP图片转换为JPEG图片
- HttpClient的使用-爬虫学习1
- 如何在CMD下运用管理员权限
- android中RelativeLayout无法填充ScrollView布局的问题
- 学习笔记TF061:分布式TensorFlow,分布式原理、最佳实践
- [转]git问题ERROR: Repository not found.的解决
- iOS MJRefresh下拉、上拉刷新自定义以及系统详细讲解
- 02.将SDK获取到的ECS主机信息入库
- CSS面试细节整理(二)
- 原生HttpClient详细使用示例
- 细说log4j之log4j 1.x
- MySQL查询本周、上周、本月、上个月份数据的sql脚本
- Python3学习之路~5.3 random模块
- UUID实现之一twitter的分布式自增IDsnowflake算法
- 学习js第一天小结
- 2017中国人工智能公司榜单发布,颠覆AT的AI独角兽全在这
热门文章
- date ";+Y-%m-%d %H:%M";
- Java坦克大战 (七) 之图片版
- CSS3制作旋转的小风车
- vmware的3种网络模式
- resin + eclipse 遇到的问题
- nginx [error] open() ";/usr/local/nginx/logs/nginx.pid"; failed的解决
- hdu5819
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(9)-场景过渡
- 我从没理解js的闭包,直到他人向我这么解释。。。
- ACM-ICPC北京赛区(2017)网络赛1【模拟+枚举+数组操作】