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 <[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
>
>