Elastic4s Ngram Mapping - PullRequest
       74

Elastic4s Ngram Mapping

0 голосов
/ 29 января 2020

Мне нужно создать сопоставление ElasticSearch следующим образом с использованиемastic4s:

  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      "name": {
       "type": "text",
       "analyzer": "ngram_analyzer",
       "fielddata": true
      },
      "lang": {
        "type": "keyword"
      },
      "order": {
        "type": "long"
      },
      "active": {
        "type": "boolean"
      }
      "description": {
        "type": "text"
      }
    }
  }

Я могу сделать

def mapping: Option[MappingDefinition] =
    Some(
      properties(
        KeywordField("id"),
        KeywordField("lang"),
        BasicField("order", "long"),
        BasicField("active", "boolean"),
        TextField("description")
      )
    )

для идентификатора, языка, порядка, активности и описания.
Но как я могу сделать такое отображение для name. проблема analyzer и fielddata внутри него.

1 Ответ

0 голосов
/ 30 января 2020

Вы должны использовать это:

TextField("name").fielddata(true).analyzer("ngram_analyzer")

Вы также должны убедиться, что правильно создали ngram_analyzer в настройках вашего индекса.

...