+1 for Davide

2014-04-20 15:56 GMT+02:00 Davide Marquês <[email protected]>:

> Hi all,
>
> The suggestions with parenthesis and boolean values make the SQL harder to
> read than needed (I can imagine having to check the documentation to
> determine what *CONTAINSTEXT(true, true)* is doing).
>
> When using a fulltext index it's a bit odd that a given string (e.g "graph
> databases") that was present on the original property text isn't found when
> looking it up with containsText. The user will have to remember that it's
> not found becase it was "exploded" before being added to the index with the
> configured separatorChars.
> I think we should change the containsText operator to work like the
> matchText operator suggested by Enrico: parsing & match all words.
>
> The other use case: parsing and matching any of the words could be served
> by a distinct operator containsTextAny.
> This would make the operators pretty straightforward to use.
>
> What do you guys think?
>
> Cheers,
> Davide
>
> On Thursday, April 17, 2014 11:43:36 AM UTC+1, Riccardo Tasso wrote:
>
>> It sounds a bit strange having an operator with parameters, what do you
>> think of something more like a predicate:
>>
>> where CONTAINSTEXT(props, true, true, "graph database")
>>
>> Thanks,
>>    Riccardo
>>
>>
>> 2014-04-17 12:33 GMT+02:00 Luca Garulli <[email protected]>:
>>
>>>
>>> On 17 April 2014 11:33, Enrico Risa <[email protected]> wrote:
>>>
>>>> Let's recap the behavior first :D
>>>>
>>>>
>>>> *select from Class where props CONTAINSTEXT(false, false ) "graph
>>>> database" *
>>>>
>>>> its like default  ( select from Class where props CONTAINSTEXT  "graph
>>>> database")
>>>>
>>>
>>> Yes
>>>
>>>
>>>>
>>>> *select from Class where props CONTAINSTEXT(true, false ) "graph
>>>> database" *
>>>>
>>>> ?
>>>>
>>>
>>> In this case is like the query above, but not you could do:
>>>
>>> *select from Class where props CONTAINSTEXT(true, false ) ["graph",
>>> "database"]*
>>>
>>> End the result would be different: all the instances with both graph and
>>> database words. May you add the support for collections like you already
>>> did with Spatial, please?
>>>
>>> *select from Class where props CONTAINSTEXT(false, true ) "graph
>>>> database"*
>>>>
>>>> parse according the index configuration and looks for each words and
>>>> return the records
>>>> that al least contains one word
>>>>
>>>
>>> Yes
>>>
>>>>
>>>>
>>>> *select from Class where props CONTAINSTEXT(true, true ) "graph
>>>> database" *
>>>>
>>>> parse according the index configuration and looks for each words and
>>>> return the records
>>>> that  contains all the  words parsed
>>>>
>>>
>>> Yes
>>>
>>>
>>>>
>>>>
>>>>
>>>> 2014-04-17 11:19 GMT+02:00 Luca Garulli <[email protected]>:
>>>>
>>>> So by default works like now. @Enrico, could you open an issue on that?
>>>>>
>>>>> Lvc@
>>>>>
>>>>>
>>>>> On 17 April 2014 11:04, Enrico Risa <[email protected]> wrote:
>>>>>
>>>>>> Sounds good to me
>>>>>>
>>>>>>
>>>>>> 2014-04-17 10:47 GMT+02:00 Luca Garulli <[email protected]>:
>>>>>>
>>>>>> Hi,
>>>>>>> actually also operators can get parameters, so we could write
>>>>>>> something:
>>>>>>>
>>>>>>> select from Class where props CONTAINSTEXT( <all>, <parseValue> ) "graph
>>>>>>> database"
>>>>>>>
>>>>>>> Where:
>>>>>>> - all, is a boolean to specify if we want all words matched
>>>>>>> - parseValue, is a boolean to tell to parse the value or using it
>>>>>>> as is
>>>>>>>
>>>>>>> Is it ugly?
>>>>>>>
>>>>>>> Lvc@
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 17 April 2014 10:39, Enrico Risa <[email protected]> wrote:
>>>>>>>
>>>>>>>> I would leave the containsText as is now
>>>>>>>> but now if you use  containsText "graph databases" the operator
>>>>>>>> looks for the entire string in the index.
>>>>>>>>
>>>>>>>> I could do one operator that take the string "graph databases"
>>>>>>>> split according
>>>>>>>> the fulltext index configuration and looks for the single string in
>>>>>>>> the index.
>>>>>>>>
>>>>>>>> something like this
>>>>>>>>
>>>>>>>> select from Class where props matchText "graph database"
>>>>>>>>
>>>>>>>> and looks from "graph" and "database" in the index
>>>>>>>>
>>>>>>>> Would be good to support like a boolean that says if you are
>>>>>>>> looking for all or at least one
>>>>>>>> So with one operator we have cover both use cases
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2014-04-16 22:41 GMT+02:00 Luca Garulli <[email protected]>:
>>>>>>>>
>>>>>>>> +1. I would leave containsText as just one and containsTextAll for
>>>>>>>>> all the words. Something like contains and containsAll.
>>>>>>>>>
>>>>>>>>> @Enrico, since you already contributed a lot on this, WDYT?
>>>>>>>>>
>>>>>>>>> Lvc@
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 16 April 2014 13:50, Riccardo Tasso <[email protected]>wrote:
>>>>>>>>>
>>>>>>>>>> Thanks Enrico,
>>>>>>>>>>    it would be nice if the containsText operator could be used in
>>>>>>>>>> conjunction with an array of strings, something like:
>>>>>>>>>> WHERE label containsTextAll ["graph", "databases"]
>>>>>>>>>> WHERE label containsTextOneOf ["graph", "databases"]
>>>>>>>>>>
>>>>>>>>>> Riccardo
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2014-04-16 13:42 GMT+02:00 Enrico Risa <[email protected]>:
>>>>>>>>>>
>>>>>>>>>> Hi Riccardo,
>>>>>>>>>>>
>>>>>>>>>>> you could try this query
>>>>>>>>>>>
>>>>>>>>>>> select from Class where property containsText "graph" OR name
>>>>>>>>>>> containsText "database"
>>>>>>>>>>>
>>>>>>>>>>> With 1.7 snapshot you could also index the prefix of a word
>>>>>>>>>>> https://github.com/orientechnologies/orientdb/wiki/FullTextIndex
>>>>>>>>>>>
>>>>>>>>>>> I think there isn't an operator that does the split and search
>>>>>>>>>>> each word
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2014-04-16 12:24 GMT+02:00 Riccardo Tasso <[email protected]>
>>>>>>>>>>> :
>>>>>>>>>>>
>>>>>>>>>>> Hi all,
>>>>>>>>>>>>    let's say I have the following query: "graph databases" and
>>>>>>>>>>>> I want to search for all the vertices with a label which contains 
>>>>>>>>>>>> at least
>>>>>>>>>>>> one of the terms "graph" OR "database". This means that all the 
>>>>>>>>>>>> following
>>>>>>>>>>>> labels are good: "I love graph databases", "I love databases", "I 
>>>>>>>>>>>> have a
>>>>>>>>>>>> graph".
>>>>>>>>>>>>
>>>>>>>>>>>> Is it possible to use a OrientDB full-text index to perform
>>>>>>>>>>>> this query? How?
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>    Riccardo
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> ---
>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>> Google Groups "OrientDB" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>>
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>>
>>>>>>>>>>> ---
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "OrientDB" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>>
>>>>>>>>>> ---
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "OrientDB" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>>
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "OrientDB" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>>
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>>
>>>>>>>> ---
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "OrientDB" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to [email protected].
>>>>>>>>
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "OrientDB" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>>
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>>
>>>>>> ---
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "OrientDB" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>>
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>  --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "OrientDB" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "OrientDB" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "OrientDB" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to