+1
On 22 April 2014 19:06, Enrico Risa <[email protected]> wrote: > 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. > -- --- 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.
