# Search From Multiple Indexes

**URL:** <https://discuss.elastic.co/t/search-from-multiple-indexes/143638>\
**Category:** Elasticsearch\
**Created:** [August 9, 2018, 7:03am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638 "2018-08-09T07:03:21Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 9, 2018, 7:03am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/1 "2018-08-09T07:03:21Z")

</div>

Is there a way to search records from multiple indexes?

Here is requirement, we are receiving 200 GB data per day, Also, i need to delete data based day wise,  
so i am planing to build index on daily bases, so i can easily remove entire index.

if user search for 1 week of data, i need to search data from 7 different Indexes.  
How can i search from multiple Indexes?

Also, if i delete data from existing records, will index rebuild automatically or I need to do it manually?

Regards,  
Gaurav Patel

---

<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:** [August 9, 2018, 8:12am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/2 "2018-08-09T08:12:22Z")

</div>

Just use index aliases. That's very convenient.  
Or search in `foo-*` that will work as well.

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 9, 2018, 8:53am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/3 "2018-08-09T08:53:38Z")

</div>

Thanks a lot @dadoonet for quick reply, I am new to elasticsearch and with .net background. Could you please provide any reference or sample of it to go through. it will help me lot.

---

<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:** [August 9, 2018, 8:56am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/4 "2018-08-09T08:56:58Z")

</div>

Searching in multiple indices. Imagine this scenario:

```auto
DELETE foo-1,foo-2,foo-3
POST foo-1/_doc
{
  "foo": "bar"
}
POST foo-2/_doc
{
  "foo": "bar"
}
POST foo-3/_doc
{
  "foo": "bar"
}

```

To search within all indices, run:

```auto
GET /_search

```

To search in indices starting with `foo-`, run:

```auto
GET foo-*/_search

```

About index aliases, read: [https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html)

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 9, 2018, 10:03am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/5 "2018-08-09T10:03:42Z")

</div>

Thank you very much @dadoonet, for your quick response and support. Rally appreciate.

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 10, 2018, 12:09pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/6 "2018-08-10T12:09:16Z")

</div>

Hi @dadoonet

Below Indexes are created as per guidance and data is inserted into it.

e.g  
logs-2018-5-25,

timestamp": "2018-05-25T01:24:18.595Z  
SourceId: 1  
Data:"Sample Data"

logs-2018-5-28,  
timestamp": "2018-05-28T01:24:18.595Z  
SourceId: 1  
Data:"Sample Data"

logs-2018-5-31  
timestamp": "2018-05-31T01:24:18.595Z  
SourceId: 1  
Data:"Sample Data"

If i want to search records for date "2018-05-25" and "2018-05-28", Is their any way i can set those value into " **Routing**" options of " **SearchRequest**". or is their any other way so that instead of looking into all available Indexes under **Aliases**?

---

<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:** [August 10, 2018, 12:18pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/7 "2018-08-10T12:18:46Z")

</div>

Add a date range query in your query.

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 10, 2018, 12:51pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/8 "2018-08-10T12:51:09Z")

</div>

Hi, @dadoonet,

I added date into filers, see below code. Even though its going to search in all indexes instead of two. See attached image.

var queryForm = new TermQuery  
{  
Field = "extendedData.name",  
Value = "bothnull1"  
};

```
        var rangeQuery = new DateRangeQuery
        {
            Field = "timestamp",
            GreaterThanOrEqualTo = new DateTime(2018, 05, 25),
            LessThanOrEqualTo = new DateTime(2018, 06, 28)
        };

        
        SearchRequest requ = new SearchRequest("callogs-*");            
        requ.Query = (queryForm && rangeQuery);

```

![image](https://us1.discourse-cdn.com/elastic/original/3X/b/9/b918577dae61432169644cef52e39bbf4bea1067.png)

---

<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:** [August 10, 2018, 1:03pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/9 "2018-08-10T13:03:06Z")

</div>

Yes. Is that a problem? Specifically if you add that within a filter clause of a bool query.

---

<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:** [August 10, 2018, 1:13pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/10 "2018-08-10T13:13:04Z")

</div>

I mean that if you really want to set on which indices you want to work, you should do something like:

```auto
SearchRequest requ = new SearchRequest("callogs-2018-05-25","callogs-2018-05-26", ...);

```

Or use date math like: [https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html)

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 10, 2018, 1:17pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/11 "2018-08-10T13:17:11Z")

</div>

Thanks a lot @dadoonet for your quick response and guidance. let me go through it.

Rally appreciate your support and help.

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 28, 2018, 5:32am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/12 "2018-08-28T05:32:51Z")

</div>

Hi @dadoonet

Need your guidance for some points.

1. Can i pass sql query to Search() method of ElasticClient?

2. My application provide dynamically creation facility, application convert user criteria into sql server WHERE condition runtime , is their way i can convert sql WHERE condition into **Elastic** compatible

3. What parameter i need to pass to NOT convert filed to lower case while creating index?  
e.g Public Class Logs{

public string AppUserName{get;set;}  
public string AssemblyName{get;set;}

}

When i pass object of Employee for indexing it convert "AppUserName" to "appUserName" and "AssemblyName" to "assemblyName", how can i ignore converting property name to lower case.

1. I read some where that **Elastic** provide queuing facility, it is true? can you please provide me some detail of it.

---

<div class="post-metadata">

**Author:** ![forloop](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/forloop/32/9021_2.png) [@forloop](https://discuss.elastic.co/u/forloop)\
**Post date:** [August 28, 2018, 11:15pm UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/13 "2018-08-28T23:15:02Z")

</div>

@Gaurav_Patel

rather than add additional questions onto a specific question about multiple indices, it would be better to open a new question(s); they'll get more visibility as new questions, and it'll also be easier for others to find the answers if they have similar questions in the future.

---

<div class="post-metadata">

**Author:** ![Gaurav\_Patel](https://avatars.discourse-cdn.com/v4/letter/g/bc79bd/32.png) [@Gaurav\_Patel](https://discuss.elastic.co/u/Gaurav_Patel)\
**Post date:** [August 29, 2018, 7:43am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/14 "2018-08-29T07:43:08Z")

</div>

Sure Sir, let me post as separate questions.

---

<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:** [September 26, 2018, 7:43am UTC](https://discuss.elastic.co/t/search-from-multiple-indexes/143638/15 "2018-09-26T07:43:12Z")

</div>

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