使用Solrj 获取语句分词结果的代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
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;
import base.util.ConfigUtil;
public class SolrService {
private static Logger log = Logger.getLogger(SolrService.class);
private static HttpSolrServer solrServer;
static {
solrServer = new HttpSolrServer(ConfigUtil.getValue("solr.url"));
solrServer.setConnectionTimeout(5000);
}
/**
* 给指定的语句分词。
*
* @param sentence 被分词的语句
* @return 分词结果
*/
public static List<String> getAnalysis(String sentence) {
FieldAnalysisRequest request = new FieldAnalysisRequest(
"/analysis/field");
request.addFieldName("title");// 字段名,随便指定一个支持中文分词的字段
request.setFieldValue("");// 字段值,可以为空字符串,但是需要显式指定此参数
request.setQuery(sentence);
FieldAnalysisResponse response = null;
try {
response = request.process(solrServer);
} catch (Exception e) {
log.error("获取查询语句的分词时遇到错误", e);
}
List<String> results = new ArrayList<String>();
Iterator<AnalysisPhase> it = response.getFieldNameAnalysis("title")
.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;
}
}
@Test
public void getAnalysis() {
List<String> results = SolrService.getAnalysis("DevNote与大家分享开发实践经验");
for (String word : results) {
System.out.println(word);
}
}
运行效果:
devnote
与
大家
分享
开发
实践经验
使用Solrj 获取语句分词结果的代码的更多相关文章
- PHP 获取当天 凌晨 时间戳常用代码
echo strtotime(date('Y-m-d')); 获取明天凌晨的时间戳代码:echo strtotime(date('Y-m-d',strtotime('+1 day'))); 附上测试代 ...
- 分享:PHP获取MAC地址的实现代码
原文地址:http://www.jbxue.com/article/12635.html发布:thatboy 来源:Net [大 中 小] 分享一例php取得机器mac地址的代码,学习下p ...
- jq获取表单值与赋值代码
jq获取表单值与赋值代码 jq获取表单值与赋值代码 $("#keyword")[0].value = ""; /*获得TEXT.AREATEXT的值*/ var ...
- go get获取gitlab私有仓库的代码
目录 目录 1.Gitlab的搭建 2.如何通过go get,获取Gitlab的代码 目录 1.Gitlab的搭建 在上一篇文章中,已经介绍了如何搭建Gitlab Https服务<Nginx ...
- easyui获取正在编辑行的代码
easyui获取正在编辑行的代码……没这个真不知道怎么搞0.0可能这问题还要弄半天……卧槽 ...等于是笔记下来 : var ed = $("dg").datagrid('get ...
- JSP 获取真实IP地址的代码
[转载]JSP 获取真实IP地址的代码 JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. ...
- 【转载】JSP 获取真实IP地址的代码
JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. 但是在通过了 Apache,Squid ...
- jQuery中使用Ajax获取JSON格式数据示例代码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...
- 在JAVA中如何获取当前源文件名以及代码的行号
在最近经历中,遇见了这样一个问题,如何获取当前源文件名以及代码的行号,只是了解到C语言有预定义宏__FILE__.__LINE__,它们在预处理的时候都已经确定好了,但是在JAVA中应该怎么获取输出呢 ...
随机推荐
- js将foo-bar转为fooBar
这是一道js的面试题,就是考察将普通面命转为小驼峰命名 <!DOCTYPE html> <html lang="en"> <head> < ...
- MySQL中如何实现 select top n
mysql 没有 top n 语法,mysql 用 limit 来实现相关功能,而且功能更加强大. 语法: SELECT * FROM table LIMIT [offset,] rows | row ...
- kibana 启动 关闭 和进程查找
启动kibana : nohup ./kibana & 查看启动日志 : tail -f nohup kibana 使用 ps -ef|grep kibana 是查不到进程的,主要原因大概 ...
- Centos6 rpm 安装mysql5.5(转)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/macfac/article/details/51868712 0. 到官网下载好,想要安装的rpm包 ...
- Hyperledger fabric 1.3版本的安装部署(原创多机多Orderer部署
首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引 ...
- 在windows server 2012上安装.net3.5
1.dism.exe /online /enable-feature /featurename:NetFX3 /Source:D:\sources\sxs /all 2.Start the Local ...
- 数据仓库专题20-案例篇:电商领域数据主题域模型设计v0.2(改进意见征集中)
一.电商分类(平台+自营+复合) (1)平台型电商:淘宝+天猫+百度Mall等: (2)自营型电商: 2.1 综合型:京东(早期)+当当(早期): 2.2 垂直型:好像这种类型越来越少了: (3)复合 ...
- 【mysql】linux查看mysql配置文件my.conf
mysql --help|grep 'my.cnf' /etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 这些就是mysq ...
- 玄学曲线并不玄 教你如何看懂GPU呈现
红色代表了“执行时间”,它指的是Android渲染引擎执行盒子中这些绘制命令的时间,假如当前界面的视图越多,那么红色便会“跳”得越高.实际使用中,比如我们平时刷淘宝App时遇到出现多张缩略图需要加载时 ...
- vue中滚动事件绑定的函数无法调用问题
问题描述: 一个包含下拉加载的页面,刷新当前页然后滚动页面,能够正常触发滚动事件并调用回调函数,但是如果是进了某一个页面然后再进的该页面,滚动事件能够触发, 但是回调函数在滚动的时候只能被调用一次. ...