当我们建立一个 index 的时候,可以为 index 创建专属的 analyzer
这个 analyzer 的只是该 index 可见,而不是全局的
PUT /my_index
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "my_analyzer"
},
"content": {
"type": "text"
}
}
},
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"my_synonyms"
]
}
},
"filter": {
"my_synonyms": {
"type": "synonym",
"synonyms_path": "analysis/synonyms.txt"
}
}
}
}
}
有这么一个需求,我们希望,使用 python sdk 查看 analyzer 的结果,怎么办?
很简单:
es.indices.analyze(
index=index_name,
body={
"analyzer": "sentence_analyzer",
"text": content,
}
)
加上 index=index_name 参数就好了,不然会遇到报错: failed to find global analyzer [sentence_analyzer]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。