1

I am trying to use Spring data elastic search. I also read this Spring Data Elastic Search with Nested Fields and mapping

Getting the following exception.

Caused by: org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to execute phase [dfs], all shards failed; shardFailures {[-EbBygdLRkKs49wqsf5ewQ][support_team_idx][0]: RemoteTransportException[[Artie][local[6]][indices:data/read/search[phase/dfs]]]; nested: SearchParseException[[support_team_idx][0]: from[0],size[10]: Parse Failure [Failed to parse source [{"from":0,"size":10,"query":{"nested":{"query":{"bool":{"must":[{"term":{"supportteam.name":"test"}},{"term":{"supportteam.description":"test"}}]}},"path":"SupportTeam"}}}]]]; nested: QueryParsingException[[support_team_idx] [nested] failed to find nested object under path [SupportTeam]]; }

Entity:

  @Document(indexName = "support_team_idx", type = "support_team_type", indexStoreType= "memory", shards = 1, replicas = 0,  refreshInterval = "-1")
public class SupportTeam extends BaseEntity implements Serializable {
  private static final long serialVersionUID = 1L;

  @Field(type=FieldType.String, index=FieldIndex.analyzed)
  private String name;
  @Field(type=FieldType.String, index=FieldIndex.analyzed)
  private String description;

  @ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE})
  @JoinColumn(name = "org_unit_id", unique = false)
  @Field(type=FieldType.Nested)
  private OrgUnit orgUnit;

  @OneToMany(mappedBy = "supportTeam", fetch = FetchType.EAGER)
  @Field(type = FieldType.Nested)
  private Set<SupportTeamMember> supportTeamMembers;

  public SupportTeam() {}
 }

log.info("Initializing Indexs");
    RootConfig.elasticsearchTemplate().deleteIndex(SupportTeam.class);
    RootConfig.elasticsearchTemplate().createIndex(SupportTeam.class);
    RootConfig.elasticsearchTemplate().putMapping(SupportTeam.class);
    RootConfig.elasticsearchTemplate().refresh(SupportTeam.class, true);

....

 SearchQuery searchQuery = new NativeSearchQueryBuilder()
 .withQuery(nestedQuery("SupportTeam",           
  boolQuery().must(termQuery("supportteam.name", .
  searchText)).must(termQuery("supportteam.description", searchText))))
 .withIndices("support_team_idx").build();

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.