elasticsearch - ElasticSearch全局分析器

标签 elasticsearch

我想在ElasticSearch中定义一个全局分析器。我编辑了ES的配置文件(elasticsearch.yml)

index :
   analysis :        
      analyzer :            
         myTestAnalyzer :                
            type : standard
            max_token_length : 50 

并重新启动服务。

当我在Sense中运行
GET /_analyze?analyzer=myTestAnalyzer
{"This is a test"}

我懂了

{
“error”:“ElasticsearchIllegalArgumentException [未能找到分析器[myTestAnalyzer]]]”,
“状态”:400
}

我读过另一篇文章(define analyzer globally (ES)),我需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。

您能给我一个例子如何做到这一点。

谢谢

最佳答案

这是添加映射的方式:

curl -XPUT 'http://localhost:9200/test_index/test/_mapping' -d '
{
    "test": {
        "properties": {
            "myField": {"type": "string"}
        },
    "analyzer": "myTestAnalyzer"
    }
}'

如果要为搜索和索引指定不同的分析器,也可以使用analyzersearch_analyzer代替index_analyzer。 (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root-object-type.html#_index_search_analyzers)

关于elasticsearch - ElasticSearch全局分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849804/

相关文章:

elasticsearch - Elasticsearch 6 中一个索引的多个映射

postgresql - Logstash内存不足,读取Postgres大表

elasticsearch - elasticsearch重新索引错误-远程重新索引

elasticsearch - Elasticsearch + kibana 6.2与Elasticsearch + kibana 7.9

elasticsearch - 如何在Elasticsearch中找到所有包含 “blah”的对象?

elasticsearch - 具有嵌套字段和映射的 Spring Data Elastic Search

elasticsearch - 通过在另一个索引中找到的时间戳来过滤/聚合时间序列数据的一个elasticsearch索引

elasticsearch - 为多个 Elasticsearch 集群配置单个 Kibana 服务器

elasticsearch - ElasticSearch结果以特定字母开头?

java - elasticsearch java搜索查询