通过命令行 我发出一个分词测试请求
curl -XGET 'http://localhost:9200/modelgoods/_analyze?analyzer=index_ansj&pretty' -d '多乐士'
{
"tokens" : [
{
"token" : "多乐士",
"start_offset" : 0,
"end_offset" : 3,
"type" : "nr",
"position" : 0
},
{
"token" : "多乐",
"start_offset" : 0,
"end_offset" : 2,
"type" : "nrt",
"position" : 1
},
{
"token" : "乐",
"start_offset" : 1,
"end_offset" : 2,
"type" : "a",
"position" : 3
},
{
"token" : "士",
"start_offset" : 2,
"end_offset" : 3,
"type" : "ng",
"position" : 4
}
]
}
可以看到分词为 多乐士,多乐,乐,士
但是用ansj的分词java代码测试 却得不到这样的结果
str="多乐士";
List<Term> listTerm = IndexAnalysis.parse(str).getTerms();
结果只有 多乐士 nr
请问 ansj的java代码怎么写才能得到和 命令行一样的分词结果
curl -XGET 'http://localhost:9200/modelgoods/_analyze?analyzer=index_ansj&pretty' -d '多乐士'
{
"tokens" : [
{
"token" : "多乐士",
"start_offset" : 0,
"end_offset" : 3,
"type" : "nr",
"position" : 0
},
{
"token" : "多乐",
"start_offset" : 0,
"end_offset" : 2,
"type" : "nrt",
"position" : 1
},
{
"token" : "乐",
"start_offset" : 1,
"end_offset" : 2,
"type" : "a",
"position" : 3
},
{
"token" : "士",
"start_offset" : 2,
"end_offset" : 3,
"type" : "ng",
"position" : 4
}
]
}
可以看到分词为 多乐士,多乐,乐,士
但是用ansj的分词java代码测试 却得不到这样的结果
str="多乐士";
List<Term> listTerm = IndexAnalysis.parse(str).getTerms();
结果只有 多乐士 nr
请问 ansj的java代码怎么写才能得到和 命令行一样的分词结果
3 个回复
寻z - elk
赞同来自:
rochy - rochy_he
赞同来自:
rochy - rochy_he
赞同来自:
参考:https://elasticsearch.cn/question/643