elasticsearch - AWS ElasticSearch服务-我可以在其上使用任何茎干吗?

标签 elasticsearch aws-elasticsearch porter-stemmer snowball-stemmer

试图使用类似于雪球的英语词干来确保多个搜索查询。

有没有标准的aws?还是我需要安装插件?
我试过以下2,得到以下内容:
{"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[dd63ee99c9186dd4b38e282ea58cbe6b][x.x.x.x:9300][indices:admin/create]"}],"type":"illegal_argument_exception","reason":"unknown setting [index.filter.my_stemmer.language] please check that any required plugins are installed, or check the breaking changes documentation for removed settings","suppressed":[{"type":"illegal_argument_exception","reason":"unknown setting [index.filter.my_stemmer.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"}]},"status":400}

尝试1:

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "my_stemmer"
          ]
        }
      },
      "filter": {
        "my_stemmer": {
          "type": "stemmer",
          "language": "light_german"
        }
      }
    }
  }
}



尝试2:
PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "my_stemmer"
          ]
        }
      },
      "filter": {
        "my_stemmer": {
          "type": "snowball",
          "language": "English"
        }
      }
    }
  }
}

最佳答案

可以与以下工具一起使用:

public void createSettingsWithEnglishStemAnalyzer() throws ExecutionException, InterruptedException, IOException {
    CreateIndexRequest request = new CreateIndexRequest(indexName);
    request.settings(Settings.builder()
            .put("index.max_inner_result_window", 250)
            .put("index.write.wait_for_active_shards", 1)
            .put("index.query.default_field", "paragraph")
            .put("index.number_of_shards", 3)
            .put("index.number_of_replicas", 2)
            .loadFromSource(Strings.toString(jsonBuilder()
                    .startObject()
                       .startObject("analysis")
                            .startObject("filter")
                                .startObject("english_stemmer")
                                .field("type","stemmer")
                                .field("name", "english")
                                .endObject()
                            .endObject()
                            .startObject("analyzer")
                                .startObject("EnglishStopWordAnalyzer")
                                    .field("tokenizer", "standard")
                                    .field("filter", new String[]{"lowercase","english_stemmer"})
                                .endObject()
                            .endObject()
                        .endObject()
                    .endObject()), XContentType.JSON)
    );
    CreateIndexResponse createIndexResponse = client.admin().indices().create(request).get();
    System.out.println("Index : "+createIndexResponse.index()+" Created");
    getSettingsWithAnalyzer();
}

关于elasticsearch - AWS ElasticSearch服务-我可以在其上使用任何茎干吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62397962/

相关文章:

elasticsearch - 使用Yii 2.0的Elasticsearch:错误:Elasticsearch请求失败:7-无法连接到##。##。##。###端口9200:连接被拒绝

elasticsearch - Amazon Elasticsearch Service上的Elasticsearch Circle接收处理器

amazon-web-services - 使用 AWS Cognito 连接到基于 VPC 的 Kibana

nlp - 油炸的波特词干

elasticsearch - 我可以通过 elasticsearch-template.json 设置 logstash 默认的 elasticsearch 映射吗

json - 发送数据时出现 ElasticSearch 错误

ruby-on-rails - ElasticSearch - 格式错误的查询 (RoR)

aws-cloudformation - AWS Elasticsearch 通过 CloudFormation 启用 "HTTPS for all traffic"

c++ - 波特词干算法实现问题?

java - 雪球词干分析器 [Java]