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.
Hi John,
What about using the intersect operator on the two result sets ?
Best regards, Fabrice Etanchaud Questel/Orbit
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 10:35 À : basex-talk@mailman.uni-konstanz.de Objet : [basex-talk] How to use ft:search() for querying 2 or more phrases?
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
Hi Fabrice,
Thanks a lot. How come I forgot this !!!
Now my query will be -
for $x in ft:search("Articles", ("electromagnetic waves"), map { 'mode':='Phrase' })/ancestor::Doc intersect ft:search("Articles", ("electromagnetic particles"), map { 'mode':='Phrase' })/ancestor::Doc return $x
Again thanks a lot :)
On Fri, Nov 28, 2014 at 3:11 PM, Fabrice Etanchaud fetanchaud@questel.com wrote:
Hi John,
What about using the intersect operator on the two result sets ?
Best regards,
Fabrice Etanchaud
Questel/Orbit
*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 10:35 *À :* basex-talk@mailman.uni-konstanz.de *Objet :* [basex-talk] How to use ft:search() for querying 2 or more phrases?
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
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
Well… [2] was supposed to be [1], and [1] should be [2].
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
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
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.commailto: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.commailto: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
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
Hi John,
Sorry, but I'll simply repeat my initial mail:
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.
In other words, your query…
If I modify this to my requirement it will be - ft:search("db", ("A", "B"), map {"mode": "phrase"})
…is equivalent to:
ft:search("db", ("A B"))
If you believe that the information in our Wiki is not clear enough and could be improved, your feedback is more than welcome (as usual, *any* edits to our Wiki are welcome).
Best, Christian
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
-- Have a nice day JBest
basex-talk@mailman.uni-konstanz.de