# Index and search multiple indices and fields

**URL:** <https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324>\
**Category:** Elasticsearch\
**Created:** [April 4, 2023, 1:16pm UTC](https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324 "2023-04-04T13:16:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Adarsh\_R\_K](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adarsh_r_k/32/119361_2.png) [@Adarsh\_R\_K](https://discuss.elastic.co/u/Adarsh_R_K)\
**Post date:** [April 4, 2023, 1:16pm UTC](https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324/1 "2023-04-04T13:16:09Z")

</div>

I am new to elasticsearch  
I am using elasticsearch java-client library to in spring boot application for a global search functionality.I have 5 entity classes with multiple fileds to search for , how can I do that ?  
I am now indexing and searching single document , I am attaching the code here.  
Help is much appreciated

```auto

    private void indexData() throws IOException {
        List<Project> projectList = projectRepository.findAll();
        List<ProjectRequestDto> projectRequestDtoList = projectList.stream().map(ProjectMapper::projectToProjectRequestDtoConvertor).collect(Collectors.toList());

        BulkRequest.Builder br = new BulkRequest.Builder();
        Jedis jedis = new Jedis("localhost");

            for (ProjectRequestDto project : projectRequestDtoList) {
                if (jedis.sadd("indexed_project_ids", project.getProjectId()) == 1) {
                    br.operations(op -> op
                            .index(idx -> idx
                                    .index("projects")
                                    .id(project.getProjectId())
                                    .document(project)
                            )
                    );
                }
            }

        BulkResponse result = client.bulk(br.build());
    }

```

```auto
  SearchResponse<Project> response = client.search(s -> s
                        .index("projects", "")
                        .query(q -> q
                                .match(t -> t
                                        .field("name")
                                        .field("")
                                        .query(search)
                                )
                        ),
                Project.class
        );

```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 4, 2023, 4:15pm UTC](https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324/2 "2023-04-04T16:15:10Z")

</div>

You should use [the multi\_match query](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html) in that case.

See

> <https://github.com/dadoonet/legacy-search/blob/ae9bd89fc65b8812c2e4f2a514fbb5937e8bdf75/src/main/java/fr/pilato/demo/legacysearch/service/PersonService.java#L108-L115>

---

<div class="post-metadata">

**Author:** ![Adarsh\_R\_K](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adarsh_r_k/32/119361_2.png) [@Adarsh\_R\_K](https://discuss.elastic.co/u/Adarsh_R_K)\
**Post date:** [April 5, 2023, 12:13pm UTC](https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324/3 "2023-04-05T12:13:48Z")

</div>

I am using java-client api 8.7

---

<div class="post-metadata">

**Author:** ![Adarsh\_R\_K](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adarsh_r_k/32/119361_2.png) [@Adarsh\_R\_K](https://discuss.elastic.co/u/Adarsh_R_K)\
**Post date:** [April 5, 2023, 12:14pm UTC](https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324/4 "2023-04-05T12:14:45Z")

</div>

solved

```auto
        SearchResponse<ElasticRequestDto> response = client.search(s -> s
                        .index("documents")
                        .query(q -> q
                                .multiMatch(m -> m
                                        .fields("title", "description", "uniqueId", "additionalField")
                                        .query(search)
                                )
                        ),
                ElasticRequestDto.class
        );

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 3, 2023, 12:15pm UTC](https://discuss.elastic.co/t/index-and-search-multiple-indices-and-fields/329324/5 "2023-05-03T12:15:14Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
