在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

小白提问:对本地文件搜索后(建立索引后),如何查看实际的分词情况?

Elasticsearch | 作者 RengReng305 | 发布于2022年09月08日 | 阅读数:1132

提问背景:要对几百个专业性文章(PDF/PPT/Excel)进行全文搜索,为提高搜索精确度 ,想自定义一个专业词汇的词典。想先知道已有分词器对这些文章已经做了怎样的分词,然后再把没有正确分词的词语做成词典。

ES版本:8.3.2   Kibana版本:8.3.2   运行环境:Windows Server 2016

现状:因为是初学小白,虽然已经查了一堆文章,但查到的都是新做一个索引,输入几句话来测试分词效果,而没查到如何查看对文件的实际索引分词列表……故来请教论坛里的各位大神……希望能得到热心人的不吝赐教~~
已邀请:

zmc - ES PAAS、JuiceFS

赞同来自: RengReng305

# IK 最大粒度拆分
GET _analyze
{
  "analyzer": "ik_smart",
  "text": "word"
}

# IK 最细粒度拆分
GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "word"
}

这样可以直接看输入的词拆分的结果,如果词库没变,就是默认的。
 
要看已经写入的doc的当时写的时候的分词结果,没法通过API看到了,只能考虑是否可以看生成的dict文件,这不是一个好的方式。还不如写个脚本整理上面API的执行结果拿出来分析
 
 
 

Ombres

赞同来自: RengReng305

如果是默认设置,可以试试 _termvectors 这个接口,能返回某文章的分词情况,是以term进行分组的,包含偏移量起始位置词频等信息。
如果要按照分词顺序排列的结果,建议还是用_analyze接口+手动输入文本进行测试

要回复问题请先登录注册