小狼最近在看solr分词,环境是搭好了,但是小狼想把这个算出来的分词放到Java端,很纠结
怎么把下面分出来的结果放到Java类中
public static String testSolrLocal2() throws SolrServerException{
StringUtill util=new StringUtill();
HttpSolrServer solr = new HttpSolrServer("http://localhost:8888/solr/collection1");
try {
solr.setConnectionTimeout(1000);
solr.setDefaultMaxConnectionsPerHost(100);
solr.setMaxTotalConnections(100);
} catch (Exception e) {
e.printStackTrace();
}
SolrQuery query = new SolrQuery();
query.add(CommonParams.QT, "/analysis/field"); // query type
query.add(AnalysisParams.FIELD_VALUE, "杜淳,我爱你");
query.add(AnalysisParams.FIELD_TYPE, "text_it");
QueryResponse response=solr.query(query);
NamedList<Object> analysis = (NamedList<Object>) response.getResponse().get("analysis");// analysis node
NamedList<Object> field_types = (NamedList<Object>) analysis.get("field_types");// field_types node
NamedList<Object> text_it = (NamedList<Object>) field_types.get("text_it");// text_chinese node
NamedList<Object> index = (NamedList<Object>) text_it.get("index");// index node
List<SimpleOrderedMap<String>> list = (ArrayList<SimpleOrderedMap<String>>) index.get("org.apache.lucene.analysis.standard.StandardTokenizer");// tokenizer node
String nextQuery="";
for(Iterator<SimpleOrderedMap<String>> iter = list.iterator(); iter.hasNext();)
{
nextQuery += iter.next().get("text") + " ";
}
return nextQuery.trim();
}
其中QueryResponse 对象的值是一堆json
analysis={
field_types={
text_it={
index={
org.apache.lucene.analysis.standard.StandardTokenizer=[
{
text=杜,
raw_bytes=[
e69d9c
],
start=0,
end=1,
org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength=1,
type=<IDEOGRAPHIC>,
position=1,
positionHistory=[
1
]
},
{
text=淳,
raw_bytes=[
e6b7b3
],
start=1,
end=2,
org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength=1,
type=<IDEOGRAPHIC>,
position=2,
positionHistory=[
2
]
},
{
text=我,
raw_bytes=[
e68891
],
start=3,
end=4,
org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength=1,
type=<IDEOGRAPHIC>,
position=3,
positionHistory=[
3
]