乐趣区

关于elasticsearch:elasticsearch-python-如何使用非全局的-analyzer

当咱们建设一个 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]

退出移动版