Sounds good to me.
I just don't know if it's better change the containsText behavior or create
a new  operator that does the job.
So leave the containsText as it is and create 2 new operators
-matchText (at least one)
-matchTextAny (all parsed word)

WDYT?


2014-04-22 10:00 GMT+02:00 Riccardo Tasso <[email protected]>:

> +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.
>

-- 

--- 
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