Как добавить поле типа объекта ранга в индекс в scala?

#scala #elasticsearch #indexing #elastic4s

#scala #elasticsearch #индексирование #elastic4s

Вопрос:

 def createCompanyAutoCompleteIndex(indexName: String, host: String, port: Int = defaultPort,  shds: Int = defaultShards): Unit = {
    client(host, port).execute {
      createIndex(indexName).shards(shds).mappings {
        mapping(mappingName).as(
          keywordField("id"),
          textField("name_suggest").analyzer("autocomplete").searchAnalyzer("autocomplete_search"),
          keywordField("name"),
          longField("number_of_employees"),
          **longField("net_sales"),**
          intField("company_type_score")
        )
      }.analysis(
        Seq(CustomAnalyzerDefinition("autocomplete",EdgeNGramTokenizer("autocomplete", 2, 10, Seq("letter")), LowercaseTokenFilter),
        CustomAnalyzerDefinition("autocomplete_search", LowercaseTokenizer)))
    }.await
  }
 

Я не вижу опции поля функции ранга, я хочу сделать чистые продажи функции типа ранга, пожалуйста, помогите!!

Ответ №1:

RankFeatureField Под пакетом находится класс case com.sksamuel.elastic4s.fields : https://github.com/sksamuel/elastic4s/blob/7154d10e0097cebe5524875f88f6a81f03bb3b26/elastic4s-domain/src/main/scala/com/sksamuel/elastic4s/fields/RankFeatureField.scala

Нет вспомогательных методов конструктора (например, в camelCase intField ), но вы должны иметь возможность напрямую использовать класс case (в PascalCase).