Wir verwenden exist-db Basis zum Speichern verschiedener XML-Dokumente, auf denen wir suchen mit xquery. Dies ist Beispiel für XML-Dokument:XQuery unscharfe Suche in exist-db
<person personID="some_id">
<name>
<familyName>Doe</familyName>
<firstName>John</firstName>
</name>
</person>
Die Suche wir verwenden, ist Fuzzy-Suche und die Abfrage ist in folgenden Form
xquery version "3.0";
for $doc in collection('/db/Persons')/*[ft:query(.,'milan~')]
let $score := ft:score($doc)
order by $score descending return base-uri($doc)
Die Problem ist, dass Suchaufträge eher merkwürdig sind. Zum Beispiel rangiert es Milun, Milun, Golan, Vilon vor Milan. Mit anderen Worten, die Suche weist den Ergebnissen, die im Vergleich zur exakten Übereinstimmung nicht exakt übereinstimmen, eine höhere Punktzahl zu (Milan). Was machen wir falsch? Gibt es eine Möglichkeit, dass exakte Übereinstimmungen im Vergleich zu fast exakten Übereinstimmungen höhere Werte haben?