使用elastic4s创建索引设置 [英] creating settings of index using elastic4s

查看:66
本文介绍了使用elastic4s创建索引设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我上一些课:

class SomeClass(val client: ElasticClient, val config: Config, val configName: String)(implicit val ec: ExecutionContext)
  extends ElasticSearchRepositoryWrapper[AnotherClass]{
    override def mapping: Option[MappingDefinition] = Some(
      properties(
        KeywordField("id"),
        TextField("name").fielddata(true).analyzer("ngram_analyzer"),
        KeywordField("lang"),
        BasicField("order", "long"),
        ...
       )
    )

我正在使用此映射通过 repository.createIndexIfNotExists()创建索引.
现在,我必须在索引设置中创建 ngram_analyzer :

I'm creating an index with repository.createIndexIfNotExists() using this mapping.
Now I must create ngram_analyzer in my index settings:

  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "ngram_analyzer": {
            "filter": [
              "lowercase"
            ],
            "tokenizer": "my_tokenizer"
          }
        },
        "tokenizer": {
          "my_tokenizer": {
            "token_chars": [
              "letter",
              "digit"
            ],
            "min_gram": "3",
            "type": "ngram",
            "max_gram": "3"
          }
        }
      }
    }

如何使用elastic4s做到这一点?

How can I do that using elastic4s?

推荐答案

确定.不推荐使用 createIndexIfNotExists()的许多功能.因此,我在分析器中放置了 CreateIndexRequest :

OK. A lot of functions of createIndexIfNotExists() were deprecated. So, I used CreateIndexRequest where I put my analyzer:

CreateIndexRequest(repository.indexName, analysis = Option(ngramAnalyzer), mapping = repository.mapping)
      .shards(repository.shards)
      .replicas(repository.replicas)

然后我像这样初始化分析器:

And I initialized my analyzer like this:

val ngramAnalyzer = Analysis(
    List(CustomAnalyzer(
      name = "ngram_analyzer",
      tokenizer = "ngram",
      charFilters = Nil,
      tokenFilters = List("lowercase")
    ))
  )

这篇关于使用elastic4s创建索引设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆