# Elastic search parse a string

**URL:** https://discuss.elastic.co/t/elastic-search-parse-a-string/308164
**Category:** Elasticsearch
**Created:** [June 25, 2022, 12:20pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164 "2022-06-25T12:20:07Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![Dorian](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dorian/32/99119_2.png) [@Dorian](https://discuss.elastic.co/u/Dorian)
#### Post date: [June 25, 2022, 12:20pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/1 "2022-06-25T12:20:07Z")

</div>

Hi,

I search a way to find a string inside another string by parsing it.

For example i index into elasticSearch a document that contain the text : "2000Newyork" in a field name "id"

And now i want to find the indexed document with a query like "2000" or "Newyork".

How can i do that ?

---

<div class="post-metadata">

### Author: ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)
#### Post date: [June 25, 2022, 12:23pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/2 "2022-06-25T12:23:12Z")

</div>

I would recommend you have a look at the [wildcard field type](https://www.elastic.co/guide/en/elasticsearch/reference/8.2/keyword.html#wildcard-field-type) as I believe it is the most efficient way to search for substrings.

---

<div class="post-metadata">

### Author: ![Dorian](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dorian/32/99119_2.png) [@Dorian](https://discuss.elastic.co/u/Dorian)
#### Post date: [June 25, 2022, 12:39pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/3 "2022-06-25T12:39:40Z")

</div>

I tried to do this :

```
                    var mq = QueryBuilders.wildcard().field("id")
                                    .wildcard(s)
                                    .build();

                    SearchRequest request = new SearchRequest.Builder()
                                    .index("home2")
                                    .size(size)
                                    .query(mq._toQuery())
                                    .build();

                    SearchResponse<Page> search = client.search(
                                    request,
                                    Page.class);

```

but it doesn't works.

---

<div class="post-metadata">

### Author: ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)
#### Post date: [June 25, 2022, 12:41pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/4 "2022-06-25T12:41:30Z")

</div>

You will need to make sure you have the appropriate mappings in your index. Also please do not post images of text as they are hard to read and search.

---

<div class="post-metadata">

### Author: ![Dorian](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dorian/32/99119_2.png) [@Dorian](https://discuss.elastic.co/u/Dorian)
#### Post date: [June 25, 2022, 12:57pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/5 "2022-06-25T12:57:26Z")

</div>

How can i update the mapping of a field with java api ?  
I already tried with the documentation but it didn't help me.

---

<div class="post-metadata">

### Author: ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)
#### Post date: [June 25, 2022, 1:50pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/6 "2022-06-25T13:50:31Z")

</div>

You can generally not update mappings in Elasticsearch. Instead create an index template and reindex your data. I usually do this through Kibana, so can not help with the Java API.

---

<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: [June 25, 2022, 2:59pm UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/7 "2022-06-25T14:59:09Z")

</div>

I think that the default analyzer and the default behavior of the match query will work in that case.

---

<div class="post-metadata">

### Author: ![Dorian](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dorian/32/99119_2.png) [@Dorian](https://discuss.elastic.co/u/Dorian)
#### Post date: [June 26, 2022, 9:53am UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/8 "2022-06-26T09:53:52Z")

</div>

Do you know how can i apply the standard analyzer to my query ?

---

<div class="post-metadata">

### Author: ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)
#### Post date: [June 26, 2022, 10:57am UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/9 "2022-06-26T10:57:46Z")

</div>

It is applied through the mappings of the index, e.g. through an index template when the index is created. It is not controlled through the query.

---

<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: [July 24, 2022, 10:57am UTC](https://discuss.elastic.co/t/elastic-search-parse-a-string/308164/10 "2022-07-24T10:57:51Z")

</div>

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