Ложное срабатывание возвращено при поиске подстановочных знаков в Marklogic 7

Я выполняю поиск XQuery по словесному запросу, чтобы возвращать значения, используя совпадения. Но проблема в том, что при выполнении поиска с подстановочными знаками возникают определенные ложные срабатывания, которые возвращаются как часть совпадающих документов. Выполненный запрос слова элемента

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

Выполняемый запрос

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'),
        ()    
    ))
)

Он возвращает два совпадающих результата, один из которых положительный, а другой — ложноположительный.

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

person Kaustav Banerjee    schedule 02.11.2016    source источник
comment
Вы можете опубликовать два матча? Вероятно, это связано с вашими настройками индекса.   -  person wst    schedule 02.11.2016
comment
‹cts:совместное появление xmlns:cts=marklogic.com/cts xmlns:xsi=w3.org/2001/XMLSchema-instance xmlns:xs=w3.org/2001/XMLSchema› ‹cts:value xsi:type=xs:string›General‹/cts:value› ‹cts: значение xsi:type=xs:string›/pdf/text-document/12345_0_1234.xml‹/cts:value› ‹/cts:совпадение› ‹cts:совпадение xmlns:cts=marklogic.com/cts xmlns:xsi=w3.org/2001/XMLSchema-instance xmlns:xs=w3 .org/2001/XMLSchema› ‹cts:value xsi:type=xs:string›Other‹/cts:value› ‹cts:value xsi:type=xs:string›/pdf/text-doc/1234_1_0000 .xml‹/cts:значение   -  person Kaustav Banerjee    schedule 02.11.2016
comment
Как устроены ваши документы? Оба этих значения взяты из одного и того же документа или из разных документов? Какие значения соответствуют cts:element-word-query (правильному и ложноположительному)?   -  person wst    schedule 02.11.2016
comment
Они взяты из разных документов. Нет совпадений, которые выделены как совпадающие фрагменты, и это особенно проблема.   -  person Kaustav Banerjee    schedule 02.11.2016
comment
Я думаю, что более важным, чем результат совпадения, было бы предоставление фактического документа, который дает ложное срабатывание по сравнению с предоставленным поиском.   -  person David Ennis    schedule 02.11.2016


Ответы (1)


Без полного воспроизводимого тестового примера я думаю, что отсутствие позиционного индекса приводит к тому, что подстановочный знак cts:element-word-query возвращает ложное срабатывание. Попробуйте включить один или оба: element word positions и element value positions в конфигурации вашей базы данных и повторите запрос (после переиндексации).

person wst    schedule 02.11.2016
comment
Также обратите внимание, что запрос выполняется с помощью cts:element-value-co-occurrences(). оценивается как нефильтрованный запрос. Здесь было бы полезно показать образец ложноположительного документа. - person Dave Cassel; 03.11.2016