當我們建立一個 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]