Булевы поля с префиксом «is» не сохраняются в индексе после обновления до spring-data -asticsearch: 3.2.5.RELEASE - PullRequest
0 голосов
/ 14 марта 2020

После обновления до spring-boot-starter: 2.2.5.RELEASE, зависимости Spring-Cloud: Hoxton.SR3, зависимости Spring-Cloud-Stream: Horsham.SR3 & spring-data -asticsearch: 3.2.5 .РЕЛИЗ. Логические поля не хранятся в индексе / документе. Раньше работал с весенней загрузкой 2.1.11.

Я пытался создать документ вручную, используя ElasticSearch REST API. При попытке напрямую с помощью REST API логические поля сохраняются в индексе.

Есть ли какие-либо изменения в том, как объявляются отображения для логических полей?

Я использую ElasticsearchTemplate.index ( IndexQuery) API для создания индексного документа, где IndexQuery построен с объектом документа, имеющим некоторые логические поля.

Ниже приведены логические поля в файле CatalogIndex. java.

@Document(indexName = "catalogentity")
public class CatalogIndex {

  private boolean isType;
  private boolean isAbstract;
  private boolean isFinal;
  private String stateId;
  private String stageId;
  //some other fields

  public boolean isType() {
    return isType;
  }

  public void setType(final boolean type) {
    isType = type;
  }

  public boolean isAbstract() {
    return isAbstract;
  }

  public void setAbstract(final boolean anAbstract) {
    isAbstract = anAbstract;
  }

  public boolean isFinal() {
    return isFinal;
  }

  public void setFinal(final boolean aFinal) {
    isFinal = aFinal;
  }

  //some other setter and getters

Отображения таковы:

{
  "properties": {
    "type": {
      "type": "boolean"
    },
    "abstract": {
      "type": "boolean"
    },
    "final": {
      "type": "boolean"
    },
    "stateId": {
      "type": "text"
    },
    "stageId": {
      "type": "keyword"
    }
  }
}

Заранее спасибо, Сантхо sh

1 Ответ

0 голосов
/ 23 марта 2020

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

Ниже приведены логические поля в файле CatalogIndex. java.

@Document(indexName = "catalogentity")
public class CatalogIndex {

  private boolean isType;
  private boolean abstract1;
  private boolean final1;
  private String stateId;
  private String stageId;
  //some other fields

  public boolean isType() {
    return isType;
  }

  public void setType(final boolean type) {
    isType = type;
  }

  public boolean isAbstract1() {
    return abstract1;
  }

  public void setAbstract1(final boolean abstract1) {
    this.abstract1 = abstract1;
  }

  public boolean isFinal1() {
    return final1;
  }

  public void setFinal1(final boolean final1) {
    this.final1 = final1;
  }

  //some other setter and getters

Отображения выглядят следующим образом

{
  "properties": {
    "type": {
      "type": "boolean"
    },
    "abstract1": {
      "type": "boolean"
    },
    "final1": {
      "type": "boolean"
    },
    "stateId": {
      "type": "text"
    },
    "stageId": {
      "type": "keyword"
    }
  }
}
...