2016-11-02 2 views
0

Ich führe eine XQuery-Suche gegen eine Wortabfrage durch, um Werte mithilfe von Co-Vorkommen zurückzugeben. Das Problem besteht jedoch darin, dass beim Ausführen einer Platzhaltersuche bestimmte falsche Positive zurückgegeben werden, die als Teil der übereinstimmenden Dokumente zurückgegeben werden. Das Element Wort Abfrage ausgeführt wirdFalse Positive Zurückgegeben in Jokerzeichensuche in Marklogic 7

cts:element-word-query(fn:QName("", "contents"), "project monitor*", 
    ("case-insensitive","punctuation-insensitive","stemmed","lang=en"), 1) 

Die Abfrage der ausgeführt wird, ist

cts:element-value-co-occurrences(xs:QName("node1"), xs:QName("node2"),        
    ("collation=http://marklogic.com/collation/"), 
    cts:and-query((
     cts:element-word-query(fn:QName("", "node3"), "project monitor*", ("case-insensitive","punctuation-insensitive","stemmed","lang=en"), 1), 
     cts:element-range-query(
      xs:QName("node4"), 
      "=", 
      xs:long('1234567891011') 
     ), 
     cts:element-attribute-range-query(
      xs:QName("node5"), 
      xs:QName("attribute1"), 
      "=", 
      "" 
     ), 
     cts:collection-query('collection1'), 
     ()  
    )) 
) 

Es ist zwei passenden Ergebnisse der Rückkehr, die eine positive und eine hat hat eine falsche positive Elemente.

<cts:co-occurrence> 
    <cts:value xsi:type="xs:string">General</cts:value> 
    <cts:value xsi:type="xs:string">/pdf/text-document/12345_0_1234.xml</ct‌​s:value> 
</cts:co-occurrence> 
<cts:co-occurrence> 
    <cts:value xsi:type="xs:string">Other</cts:value> 
    <cts:value xsi:type="xs:string">/pdf/text-doc/1234_1_0000.xml</cts:value> 
</cts:co-occurrence> 
+0

Können Sie die beiden Spiele posten? Es hängt wahrscheinlich mit Ihren Indexeinstellungen zusammen. – wst

+0

Allgemein /pdf/text- document/12345_0_1234.xml Andere /pdf/text-doc/1234_1_0000.xml

+0

Wie sind Ihre Dokumente strukturiert? Fallen diese beiden Werte aus demselben Dokument oder aus unterschiedlichen Dokumenten? Welche Werte stimmen mit der 'cts: element-word-query' überein (die richtige und die falsche positive)? – wst

Antwort

3

Ohne einen vollständigen reproduzierbaren Testfall ist meine beste Vermutung, dass eine fehlende Positionsindex der wildcarded cts:element-word-query verursacht die falschen positiven zurückzukehren. Versuchen Sie eines oder beide zu aktivieren: element word positions und element value positions in Ihrer Datenbankkonfiguration und wiederholen Sie die Abfrage (nach Neuindizierung).

+0

Beachten Sie außerdem, dass die von [cts: element-value-co-occurrences()] (https://docs.marklogic.com/7.0/guide/performance/unfiltered#id_89797) ausgeführte Abfrage als ungefilterte Abfrage ausgewertet wird. Es wäre hilfreich, ein falsch-positives Beispieldokument zu zeigen. –

Verwandte Themen