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