[ 
https://issues.apache.org/jira/browse/JAMES-2080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532154#comment-17532154
 ] 

Benoit Tellier commented on JAMES-2080:
---------------------------------------

For the header field, we query things in a key, value fashion and we relied on 
nested documents to do that without dynamic mappings.

As stated above Nested documents likely have major implications on dataset size 
and indexation timings.

Today I found 
https://www.elastic.co/guide/en/elasticsearch/reference/current/flattened.html 
that might be used as an alternative. 

We should evaluate its size impact and indexation time impact.

> ES mapping: avoid using nested and use object if this affect performance
> ------------------------------------------------------------------------
>
>                 Key: JAMES-2080
>                 URL: https://issues.apache.org/jira/browse/JAMES-2080
>             Project: James Server
>          Issue Type: Improvement
>          Components: elasticsearch
>            Reporter: Luc DUZAN
>            Priority: Major
>
> This ticket should be done after 
> https://issues.apache.org/jira/browse/JAMES-2078.
> On our mapping we use nested for header, from, cc, bcc. We know theoretically 
> that nested do reduce performance (creation of invisible document to handle 
> nested value) so when possible object should be used instead.
> In a first time, you should monitor how important the performance is. If the 
> performance lost introduced by nested is significant then, you should 
> estimate and found a work around about the lost of information see:
> * https://www.elastic.co/guide/en/elasticsearch/reference/2.2/nested.html
> * https://www.elastic.co/guide/en/elasticsearch/reference/2.2/object.html
> For the moment, we think this lost of information is not a issue for FROM, 
> CC, BCC.
> But for sure, it will be a issue for headers. A way to work arround it would 
> be to transform the following:
> { headers: [{key: "key1", value: ["value1", "value2"]}, {key: "key2", value: 
> "something"}}
> To that:
> { headers: ["key1:value1", "key1:value2", "key2:something"] }
> But reflexion need to be done too see if this will work for the kind of query 
> we need to do in the headers.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to