2014-11-14 82 views
2

如果我在未过滤模式下为cts:search做变音敏感cts:query然后我得到正确的结果,但在过滤模式下做同样的结果给我不正确。 例如:Marklogic Diacritic敏感搜索不适用于未过滤搜索

cts:search($data,($cts:query('unfiltered','diacritic-sensitive'))) 
returns incorrect results. 

但:

cts:search($data,($cts:query('filtered','diacritic-sensitive'))) 
returns correct results. 

那么,有没有什么办法让非过滤搜索过正确的结果?

请在下面找到我的代码的详细信息。

for $result in cts:search (fn:collection ($searchable-collection), $cts-query, ('unfiltered',  $relevance-score-algo), 0.0) 
     order by xs:dateTime ($result//c:created-on) descending 
     return $result/element() 

其中$ cts-query是这样的。

cts:element-query($element-to-query, 
     cts:word-query($search-text, 
     $search-options, 
     $weight) 

在选项中,我可以通过“变音符敏感”或不。

+0

你能提供一个小样本xml吗? – grtjn

+0

请更正示例代码,这是无效的。 – grtjn

回答

0

对于精确的未经过滤变音敏感的搜索,您必须启用fast diacritic sensitive searches索引。允许重新索引并监视数据库状态,直到完成。

该文档有关于text indexing optionsunfiltered search的更多信息。