Hi Team,

The first example mentioned here (
http://docs.basex.org/wiki/Full-Text_Module#ft:search ) is -

ft:search("db", ("A", "B"), map {
  "mode": "all words",
  "distance": {
    "max": "5",
    "unit": "words"
  }
})

If I modify this to my requirement it will be - ft:search("db", ("A", "B"),
map {"mode": "phrase"})

To me this means that, above will search nodes containing, phrase "A" and
"B" both.


So my query then will be -

for $x in ft:search("Articles", ("electromagnetic waves", "electromagnetic
particles"), map { 'mode':='phrase' })/ancestor::Doc
return $x

But when I execute this, I get 0 result, even though, I had 5 articles. Am
I wrong ?
As suggested by Fabrice, intersect results in 5.



On Fri, Nov 28, 2014 at 4:06 PM, Fabrice Etanchaud <[email protected]>
wrote:

>  Dear John
>
>
>
> Maybe you should add the following option :
>
>
>
> map { 'mode':'all' }
>
>
>
> because ’any’ is the default.
>
>
>
> Best regards,
>
> Fabrice
>
>
>
> *De :* [email protected] [mailto:
> [email protected]] *De la part de* John Best
> *Envoyé :* vendredi 28 novembre 2014 11:32
> *À :* Christian Grün
> *Cc :* BaseX
> *Objet :* Re: [basex-talk] How to use ft:search() for querying 2 or more
> phrases?
>
>
>
> Hi Christian,
>
> Thanks for the reply.
>
> Using intersect, results in 5 Articles. Whereas you suggestion with -
>
> ft:search("Articles",
>     ("electromagnetic waves", "electromagnetic particles")
>   )/ancestor::Doc
>
> results in 218 Articles.
>
> Why the difference of 213 ?
>
> I am checking some of these additional, do they have both phrases. Will
> come back again.
>
>
>
>
>
> On Fri, Nov 28, 2014 at 3:52 PM, Christian Grün <[email protected]>
> wrote:
>
> Hi John,
>
> You can specify more than one search string with ft:search [2]:
>
>   ft:search("Articles",
>     ("electromagnetic waves", "electromagnetic particles")
>   )/ancestor::Doc
>
> In your case, the "phrase" option is not required, because it creates
> a single string from all of your search strings. Please see [1] for
> more information on the search modes.
>
> Best,
> Christian
>
> [1] http://docs.basex.org/wiki/Full-Text_Module#ft:search
> [2] http://docs.basex.org/wiki/Full-Text#Combining_Results
>
>
>
>
> On Fri, Nov 28, 2014 at 10:34 AM, John Best <[email protected]>
> wrote:
> > Hi BaseX Team,
> >
> > The subject itself is explanatory. I have following query -
> >
> > ft:search("Articles", ("electromagnetic waves"), map { 'mode':='Phrase'
> > })/ancestor::Doc
> > return $x
> >
> > This query searches for "electromagnetic waves" as a phrase. I want to
> > search another phrase "electromagnetic particles" with the previous
> phrase.
> >
> >
> > List only those Articles having both these phrases.
> >
> > --
> > Have a nice day
> > JBest
> >
> >
>
>
>
>
> --
>
> Have a nice day
> JBest
>
>


-- 
Have a nice day
JBest

Reply via email to