Re: [FT] FTIgnoreOption

Dear Sihem,
Thanks for your reply.

The following expression:
(nodeA ftcontains "some phrase" without content ./nodeB)
says only ignore the children nodeB's of nodeA. In this case, will the 
case (iii) still be considered a match?

The following expression:
(nodeA ftcontains "word" without content .//nodeB)
only searches a single word. In this case, would this be equivalent to:
(nodeA ftcontains "word")
? Or what is the semantics of a single word search with FTIgnoreOption 
specified?

Regarding FT specification 3.2.8, should the query be written as:
/book[@number="1"] ftcontains "Testing" without content .//title
Or can it be written as:
/book[@number="1"] ftcontains "Testing" without content 
/book[@number="1"]//title
? i.e. Does FTIgnoreOption require to use "." to specify the nodes to be 
ignored?

Thanks,
Andrew

Sihem Amer-Yahia wrote:

>Dear Andrew,
>
>Thank you for your interest in the full-text draft.
>
>  
>
>>Dear editors,
>>
>>Could someone provide further clarification of FTIgnoreOption? The 
>>following expression:
>>(nodeA ftcontains "some phrase" without content nodeB)
>>Shall we ignore all the subtree rooted from nodeB or ignore only the 
>>children text nodes that immediately contained by nodeB i.e. do we need 
>>to promote the children element nodes of nodeB one level up?
>>    
>>
>
>The expression above returns all nodeA's that (i) contain "some
>phrase" as a phrase (in a regular sense) or (ii) contains "... some
><nodeB> ...  </nodeB> phrase ..." where nodeB could contain any
>subtree after the word "phrase" or (iii) contains <nodeB> "some"
><nodeB> ...  </nodeB> "phrase" ...  </nodeB> or contains <nodeC>
>"some" <nodeB> ...  </nodeB> "phrase" ...  </nodeC>.
>
>The last case is the trickiest to explain but the intuition is that if
>"some phrase" appears inside nodeA, even if it is in an ignored node
>nodeB and even if it requires to ignore some other nodeB, it should be
>treated as a match. So, even if the phrase appears inside an ignored
>nodeB, it should be considered as a match.
>
>In simpler words, "some phrase" is considered a match if it appears as
>is (which is the regular, traditional sense) or if it requires to
>ignore a nodeB no matter whether "some phrase" appears inside an
>ignored nodeB or not as long as the phrase is in the scope (subtree)
>of nodeA. So, this is done recursively and not just at the children
>level.
>
>
>  
>
>>Can this detail be implementation-dependant?
>>
>>    
>>
>
>No, the semantics of FTIgnoreOption should be the same across all
>implementations.
>
>  
>
>>Also in FT specification 3.2.8, the example is:
>>/book[@number="1"] ftcontains "Testing" without content .//title
>>What does the context path "." mean? Should it be:
>>/book[@number="1" and . ftcontains "Testing" without content .//title]
>>
>>Or the previous example is correct and there is something special with 
>>semantics of "... ftcontains ... without content ..."?
>>
>>    
>>
>
>The two queries (ours and yours) are equivalent. Our qexample above is correct and that has to do with the semantics of
>ftcontains and not of FTIgnoreOption.
>
>/book[@number="1"] is an XQuery expression that returns all books that
>satify the predicate @number="1". Those books are then used by the
>subsequent ftcontains expression.
>
>
>  
>
>>Thanks,
>>
>>
>>    
>>
>
>Thanks,
>Sihem
>
>
>  
>
>>    
>>
>
>
>  
>

Received on Thursday, 3 March 2005 23:53:15 UTC