Я не уверен, чего именно вы хотите достичь. Если вы разместили запрос 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}]}
person
mrapacz
schedule
13.03.2019