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 fetanchaud@questel.com wrote:
Dear John
Maybe you should add the following option :
map { 'mode':'all' }
because ’any’ is the default.
Best regards,
Fabrice
*De :* basex-talk-bounces@mailman.uni-konstanz.de [mailto: basex-talk-bounces@mailman.uni-konstanz.de] *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 christian.gruen@gmail.com 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 johnbest5673@gmail.com 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