I imagine the types of graphs you could come up with will differ
significantly, to start with

--

Itamar Syn-Hershko
http://code972.com | @synhershko <https://twitter.com/synhershko>
Freelance Developer & Consultant
Author of RavenDB in Action <http://manning.com/synhershko/>

On Wed, Dec 10, 2014 at 11:03 AM, Dror Atariah <dror...@gmail.com> wrote:

> Is there any difference or any implications if there is also need of
> aggregations?
>
> On Wednesday, December 10, 2014 4:57:10 PM UTC+1, Itamar Syn-Hershko wrote:
>>
>> Basically, you will have to maintain more filters. Also Lucene supports
>> up to certain amount of fields, it wasn't designed to handle unlimited
>> number of them
>>
>> --
>>
>> Itamar Syn-Hershko
>> http://code972.com | @synhershko <https://twitter.com/synhershko>
>> Freelance Developer & Consultant
>> Author of RavenDB in Action <http://manning.com/synhershko/>
>>
>> On Wed, Dec 10, 2014 at 10:35 AM, Dror Atariah <dro...@gmail.com> wrote:
>>
>>> @Itamar: Can you please elaborate on the matter? Why/how does the number
>>> of fields relevant here?
>>>
>>> On Wednesday, December 10, 2014 4:26:16 PM UTC+1, Itamar Syn-Hershko
>>> wrote:
>>>>
>>>> Lucene / Elasticsearch is pretty much insignificant to this as long as
>>>> you use filters. You should prefer not_analyzed fields with string values
>>>> to represent those flags vs having dedicated boolean fields if you will
>>>> have more than a few such flags.
>>>>
>>>> --
>>>>
>>>> Itamar Syn-Hershko
>>>> http://code972.com | @synhershko <https://twitter.com/synhershko>
>>>> Freelance Developer & Consultant
>>>> Author of RavenDB in Action <http://manning.com/synhershko/>
>>>>
>>>> On Wed, Dec 10, 2014 at 10:22 AM, Dror Atariah <dro...@gmail.com>
>>>> wrote:
>>>>
>>>>> Assume that I want to be able to flag documents in an index according
>>>>> to their attributes: isFoo and isBar [1]. As far as I understand, there 
>>>>> are
>>>>> two approaches:
>>>>>
>>>>> 1) Use dedicated fields for the flags: If the document is a Foo then
>>>>> add a field named isFoo. Similarly, for isBar.
>>>>> 2) Use a flags field that will be an array of strings. In this case,
>>>>> if the document is Foo then "flags" will contain the string "isFoo".
>>>>>
>>>>> What are the pros and cons in terms of space and runtime complexities?
>>>>>
>>>>> Bear in mind the following queries examples: Consider the case where
>>>>> one wants to check the attributes of the documents in the index. In
>>>>> particular, if I want to find the documents that are either Foo *or* Bar I
>>>>> can either
>>>>> (a) In case (1): Use a Boolean "should" filter the surrounds two
>>>>> "exists"'s filters checking whether either isFoo or isBar exist.
>>>>> (b) In case (2): Use a single "exists" filter that checks the
>>>>> existence of the field "flags".
>>>>>
>>>>> A different case, is if I want to find the documents that are both Foo
>>>>> *and* Bar:
>>>>> (a) In case (1): Like before, replace the "should" with a "must".
>>>>> (b) In case (2): Surround two "term"s filters with a "must" Boolean
>>>>> one.
>>>>>
>>>>> Lastly, finding the documents that are Foo but *not* Bar.
>>>>>
>>>>> In the bottom line, In case (1) all queries boil down to mixture of
>>>>> Boolean, exists and missing filters. In case (2), one has to process the
>>>>> strings in the array of strings named "flags". My intuition is that it is
>>>>> faster to use method (1). In terms of space complexity I believe there is
>>>>> no difference.
>>>>>
>>>>> I'm looking forward to your insights!
>>>>> Dror
>>>>>
>>>>> [1]: Obviously, there could be way more flags...
>>>>>
>>>>> --
>>>>> 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 elasticsearc...@googlegroups.com.
>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/elasticsearch/ef637057-4303-4c75-9bbf-ed72e0d4806b%40goo
>>>>> glegroups.com
>>>>> <https://groups.google.com/d/msgid/elasticsearch/ef637057-4303-4c75-9bbf-ed72e0d4806b%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 elasticsearc...@googlegroups.com.
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/elasticsearch/c376b40d-1c46-43f5-952f-96ec01338788%
>>> 40googlegroups.com
>>> <https://groups.google.com/d/msgid/elasticsearch/c376b40d-1c46-43f5-952f-96ec01338788%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 elasticsearch+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/a74d02d3-5065-4642-801e-a1823fab37a4%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/a74d02d3-5065-4642-801e-a1823fab37a4%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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAHTr4ZtAqUBWTh6xXLkOB2wOF80vN3U451GPS%3DGjzTkbTxDeBQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to