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.
