I haven't tested such aggregation, but I think the way I wrote it should 
give you the oldest email that match the request from each thread. Not sure 
how they will be sorted ...  

06 август 2014, сряда, 17:31:56 UTC+3, Mark Fletcher написа:
>
> Thanks again for your response. I don't have much experience with 
> aggregations, but wouldn't that just give me a set of thread id's ordered 
> by how many messages are in each thread? In my results, it's possible to 
> have a match on a message body be ranked higher than a match on a subject. 
> Using this aggregation, wouldn't this just end up showing all subject 
> matches first?
>
> Thanks,
> Mark
>
>
> On Wed, Aug 6, 2014 at 7:08 AM, Tihomir Lichev <[email protected] 
> <javascript:>> wrote:
>
>> So you should be able to use aggregation to get the first email from each 
>> thread.
>> Kind of :
>>
>> {
>>  "aggs": {
>>    "threads": {
>>      "terms": {
>>        "field": "thread_id"
>>      }, 
>>      "aggs": {
>>        "first_email": {
>>          "min": {
>>            "field": "email_id"
>>          }
>>        }
>>      }
>>    }
>>  }
>> }
>>
>> 06 август 2014, сряда, 17:02:21 UTC+3, Mark Fletcher написа:
>>
>>> Each thread has a unique integer id (so, every message in a given thread 
>>> has a particular thread id). And each email has a unique integer id as 
>>> well. 
>>>
>>> On Wednesday, August 6, 2014 6:59:36 AM UTC-7, Tihomir Lichev wrote:
>>>>
>>>> So how you can distinguish the first email from any thread ?
>>>> Do you have some additional parameter ?
>>>>
>>>> 06 август 2014, сряда, 16:56:10 UTC+3, Mark Fletcher написа:
>>>>>
>>>>> Thanks for your response. If I do as you suggested, a subject match 
>>>>> will return all the messages in that thread (because they all match). I 
>>>>> want the search results to only contain one result if there's a thread 
>>>>> match. 
>>>>>
>>>>> I suppose I could just grab all the results and then 'collapse' the 
>>>>> thread matches, but I was hoping to be able to do something better.
>>>>>
>>>>> Thanks,
>>>>> Mark
>>>>>
>>>>> On Tuesday, August 5, 2014 10:12:32 PM UTC-7, Tihomir Lichev wrote:
>>>>>>
>>>>>> Isn't better to create single document for each mail with fields 
>>>>>> "subject" and "body" (and whatever else you need from the mail) ?
>>>>>> This way you can search by any or all of the fields, also you can 
>>>>>> define boosting for each field. For instance when your search matches 
>>>>>> the 
>>>>>> subject the mail will be scored higher in the result than if it matches 
>>>>>> the 
>>>>>> body, and you will get single set of results.
>>>>>>
>>>>>> 06 август 2014, сряда, 02:12:52 UTC+3, Mark Fletcher написа:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> We're using ES to index email, specifically mailing list messages. 
>>>>>>> We'd like search to work similar to Gmail in that we'd like to match on 
>>>>>>> either the subject or body of the email, and if it matches on the 
>>>>>>> subject, 
>>>>>>> we only want to display one result for that match (say the first 
>>>>>>> message in 
>>>>>>> that thread). In our naive implementation, we have an ES index for 
>>>>>>> subjects 
>>>>>>> and another for message bodies. But that gets us two sets of results, 
>>>>>>> not 
>>>>>>> combined. Is there a better way to structure the data, or a query that 
>>>>>>> we're missing so that we get one set of combined results?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Mark
>>>>>>>
>>>>>>  -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "elasticsearch" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/elasticsearch/eQ9XVrbulk8/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elasticsearch/a8ee880a-a399-4f27-b698-c8ee8c445b68%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elasticsearch/a8ee880a-a399-4f27-b698-c8ee8c445b68%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/eb497355-24a6-43e0-a429-66c97e1b0b98%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to