我不确定你到底想要达到什么目的。如果您发布了一个 CURL 查询,它可以满足您的需求,则可以更轻松地将其转换为 Elasticsearch DSl 或 elasticsearch-py 界面。
如果您正在寻找方法的替代_analyze
方法,但在 Python 中,您可以使用 elasticsearch-py 来实现它,但我不确定您是否可以使用 Elasticsearch DSL 来实现。因此,假设我想查看如何jestem biały miś
使用名为 的分析器分析我的字符串的结果morfologik
。使用 CURL 我会运行:
$ curl -XGET "http://localhost:9200/morf_texts/_analyze" -H 'Content-Type: application/json' -d'
{
"analyzer": "morfologik",
"text": "jestem biały miś"
}'
{
"tokens": [
{
"token": "być",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "biały",
"start_offset": 7,
"end_offset": 12,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "miś",
"start_offset": 13,
"end_offset": 16,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "misić",
"start_offset": 13,
"end_offset": 16,
"type": "<ALPHANUM>",
"position": 2
}
]
}
为了使用 elasticsearch-py 获得相同的结果,您可以运行以下命令:
from elasticsearch import Elasticsearch
from elasticsearch.client import IndicesClient
client = Elasticsearch()
indices_client = IndicesClient(client)
indices_client.analyze(
body={
"analyzer": "morfologik",
"text": "jestem biały miś",
}
)
该analyze
方法的输出与上述 CURL 请求相同:
{'tokens': [{'token': 'być',
'start_offset': 0,
'end_offset': 6,
'type': '<ALPHANUM>',
'position': 0},
{'token': 'biały',
'start_offset': 7,
'end_offset': 12,
'type': '<ALPHANUM>',
'position': 1},
{'token': 'miś',
'start_offset': 13,
'end_offset': 16,
'type': '<ALPHANUM>',
'position': 2},
{'token': 'misić',
'start_offset': 13,
'end_offset': 16,
'type': '<ALPHANUM>',
'position': 2}]}