elasticsearch dsl集成python中indices.analyze方法参数analyzer的坑(调用es的analyze接口分析字符串)

今天在做elasticsearch的过程中遇上大坑,填坑过程

在python中调用elasticsearch的indices.analyze接口的过程中,本来看网上的文章是这样写的

result = es.indices.analyze(index=index,body=text,analyzer='ik_max_word' params={'filter':["lowercase"]} )

调试过程中,WTF,为什么走不动,看错误提示是在这一句,然后就ctrl点进去analyze方法。

一看就发现,原来源码中没有analyzer这个参数啊,为啥资料有的!?不管了,赶紧看看究竟怎么配置。原来源码中给出了在body这个参数配置分析器和文档类型:

 :arg body: Define analyzer/tokenizer parameters and the text on which
            the analysis should be performed

这就好办了,但是我试过ABCDEFG种方法,发现都配置不对,而且网上资料为0,是零…,然后看到后面params的方法,突然想到会不会就是按照elasticsearch那样子写字典呢,那么elasticsearch是怎么写分析器的呢?是这样:

GET _analyze
{
    "analyzer" = "ik_max_word",
    "text":需要分析的文档
}

一看就好办了,照抄一波

result= es.indices.analyze(index=index,body={'text':text,'analyzer':"ik_max_word"}, params={'filter':["lowercase"]} )

成功了,这里注意,text是我之前就传进来的参数,所以不要写成“text ”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值