2013-09-27 6 views
0
<Docs> 
<Doc> 
    <Title>Electromagnetic Fields</Title> 
    <Info> 
     <Vol name="Physics"/> 
     <Year>2006</Year> 
    </Info> 
    <SD> 
     <Info> 
     <Para>blah blah blah.<P>blh blah blah.</P></Para> 
     </Info> 
    </SD> 
    <LD> 
     <Info> 
     <Para>blah blah blah.<P>blah blah blah.</P></Para> 
     <Para>blah blah blah.<P>blah blah blah.</P></Para> 
     <Para>blah blah blah.<P>emf waves blah.</P></Para> 
     <Para>blah blah blah.<B>emf waves</B> blah.</Para> 
     <Para>blah blah blah.<P>emf waves blah.</P></Para> 
     <Para>blah waves blah.<B>emf</B> waves blah.</Para> 
     <Para>emf blah blah.<I>waves blah.</I></Para> 
     <Para>blah blah blah.<B>emf waves</B> blah.</Para> 
     <Para>blah blah blah.<P><I>emf</I> waves blah.</P></Para> 
     </Info> 
    </LD> 
</Doc>  
</Docs> 

검색어 1 -XQuery - 왜 결과에 차이가 있습니까?

012,314,867,364 -

for $x in ft:search("Article", ("emf","waves"), map{'mode':='all words'}) 
    return $x/ancestor::*:Doc/Title 

나는 159 조회수

쿼리 3을 얻고있다 -

for $x in ft:search("Article", ("emf","waves"), map{'mode':='all words'})/ancestor::*:Doc 
    return $x/Title 

나는이 쿼리 62 조회수

무엇입니까

이 결과 224 개의 안타가 발생합니다. 셋째, 실제로 존재하는 모든 노드를 사용하고 있습니다. I, BU은 기울임 꼴, 굵게 및 밑줄로 표시됩니다.

왜 이러한 차이가 있습니까?

+0

예제 문서를 제공해야합니다. 그렇지 않으면 해당 질문에 답변 할 수 없습니다. –

+0

@JensErat - 네. 나는 게시물을 편집하고 예제 문서를 추가 할 것이다. – John

답변

1

쿼리 1과 2는 거의 같지만 Q1의 경로 식은 Doc 요소가됩니다. 따라서 단일 Doc 아래에 일치하는 노드가 여러 개인 경우 Doc은 Q1에서 한 번만 계산되지만 각 노드는 Q2에서 개별적으로 계산됩니다. 이는 경로 표현식으로 인해 생성 된 노드 시퀀스가 ​​정의 상 중복되지 않는다는 사실 때문입니다.

Q3은 다르지만 Q1과 Q2는 전체 텍스트 색인의 특성에 의존하지만 Q3은 다릅니다. 예를 들어 인덱스는 대소 문자를 구분하므로 contains text 술어보다 더 적은 결과를 얻습니다.

따옴표로 묶은 것에서는 텍스트 색인이 62 개의 문서에서 159 개의 일치하는 노드로 나타나고 일반 contains text보다 더 제한적인 것으로 지정되었다고 가정합니다.

1

첫 번째 쿼리는 특정 속성이있는 Doc 요소를 검색하고 각각 Doc 요소에 대해 하나의 결과를 반환합니다.

두 번째 쿼리는 (관련) 속성이있는 모든 종류의 노드를 검색하고 각 노드에 대해 하나의 결과를 반환합니다.

세 번째 쿼리는 다른 (관련) 속성이있는 텍스트 노드를 검색합니다.

전체 텍스트 검색 조건과 일치하는 둘 이상의 노드를 포함하는 Doc 개의 요소가있을 때마다 첫 번째 및 두 번째 쿼리는 다른 수의 적중 횟수를 반환합니다. 마찬가지로 세 번째 쿼리의 경우 다른 쿼리와 비슷합니다.

관련 문제