2017-06-12 123 views
1

我正在搜索字詞compte-courant。我有薩魯斯文件,其中包含詞庫條目,它的值是「comptes-courants」。當我進行搜索時,搜索將返回包含「comptes」或「compte」的文檔。對於那些結果文件<搜索:突出顯示>不可用。請幫忙獲取僅包含編輯器的文檔編輯器編號。請在下面找到附加的搜索選項和結果內容。Marklogic搜索:包含連字符( - )的搜索字詞搜索問題

搜索選項

<options xmlns="http://marklogic.com/appservices/search"> 
<debug>false</debug> 
<search-option>score-logtfidf</search-option> 
<search-option>unfiltered</search-option> 
<term> 
    <term-option>case-insensitive</term-option> 
    <term-option>diacritic-insensitive</term-option> 
    <term-option>punctuation-insensitive</term-option> 
</term> 
<quality-weight>5.0</quality-weight> 
<return-constraints>false</return-constraints> 
<return-facets>true</return-facets> 
<return-qtext>true</return-qtext> 
<return-query>false</return-query> 
<return-results>true</return-results> 
<return-metrics>true</return-metrics> 
<return-similar>false</return-similar> 
<transform-results apply="src-snippet" ns="/src-snippet" 
    at="/src-snippet.xqy"> 
    <per-match-tokens>30</per-match-tokens> 
    <max-matches>4</max-matches> 
    <max-snippet-chars>200</max-snippet-chars> 
    <preferred-elements /> 
</transform-results> 
<additional-query> 
    <cts:and-query xmlns:cts="http://marklogic.com/cts"> 
     <cts:directory-query depth="infinity"> 
      <cts:uri>/DOCS/</cts:uri> 
     </cts:directory-query> 
     <cts:word-query> 
      <cts:text xml:lang="en">compte-courant</cts:text> 
      <cts:text xml:lang="en">comptes-courants</cts:text> 
     </cts:word-query> 
    </cts:and-query> 
</additional-query> 
<sort-order type="xs:date" direction="descending"> 
    <element ns="" name="sortabledate" /> 
    <annotation>Sort by Date</annotation> 
</sort-order> 
<sort-order direction="descending"> 
    <score /> 
</sort-order> 
<grammar> 
    <starter strength="40" apply="grouping" delimiter=")">(</starter> 
    <starter strength="10" apply="prefix" element="cts:not-query">-</starter> 
    <joiner strength="30" apply="infix" element="cts:and-query" 
     tokenize="word">AND</joiner> 
    <joiner strength="20" apply="infix" element="cts:or-query" 
     tokenize="word">OR</joiner> 
</grammar> 

搜索:搜索( 「」,$ searchOptions, 「1」, 「4」)返回以下結果。

結果

<search:response snippet-format="src-snippet" total="640" 
start="1" page-length="10" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns="" xmlns:search="http://marklogic.com/appservices/search"> 
<search:result index="1" uri="/DOCS/JK_KAJD-10194_MAR03.xml" 
    path="fn:doc(&quot;/DOCS/JK_KAJD-10194_MAR03.xml&quot;)" score="61440" 
    confidence="0.363169" fitness="0.534633"> 
    <search:snippet> 
     <src-term /> 
     <tool-tip> 
      <search:match 
       path="fn:doc(&quot;/DOCS/JK_KAJD-10194_MAR03.xml&quot;)/CASEDOC">Cour de justice de l'Union européenne, 4e chambre, 10 Novembre 
       2016 - n° C-156/15 JK_KAJD-10194_MAR03 
      </search:match> 
     </tool-tip> 
     <title>Cour de justice de l'Union européenne, 4e chambre, 10 Novembre 
      2016 - n° C-156/15 
     </title> 

    </search:snippet> 
</search:result> 
<search:result index="2" uri="/DOCS/JP_KID-630822_MAR03.xml" 
    path="fn:doc(&quot;/DOCS/JP_KID-630822_MAR03.xml&quot;)" score="61440" 
    confidence="0.363169" fitness="0.534633"> 
    <search:snippet> 
     <src-term /> 
     <tool-tip> 
      <search:match 
       path="fn:doc(&quot;/DOCS/JP_KID-630822_MAR03.xml&quot;)/CASEDOC">Conseil d'État, 3e sous-section, 16 Juillet 2015 - n° 388760 
       JP_KID-630822_MAR03 
      </search:match> 
     </tool-tip> 
     <title>Conseil d'État, 3e sous-section, 16 Juillet 2015 - n° 388760 
     </title> 

    </search:snippet> 
</search:result> 
<search:result index="3" uri="/DOCS/JP_KICA-0031257_MAR03.xml" 
    path="fn:doc(&quot;/DOCS/JP_KICA-0031257_MAR03.xml&quot;)" score="98304" 
    confidence="0.459376" fitness="0.676263"> 
    <search:snippet> 
     <src-term>compte-courant</src-term> 
     <tool-tip> 
      <search:match 
       path="fn:doc(&quot;/DOCS/JP_KICA-0031257_MAR03.xml&quot;)/CASEDOC/*:body/*:content/*:judgments/*:judgment/*:judgmentbody/*:considerations[2]/p[13]/text"> 
       ALORS QUE, D'AUTRE PART, en considérant que l'enregistrement des 
       redevances sur un 
       <search:highlight>compte-courant</search:highlight> 
       personnel valait mise à disposition des redevances de la location 
       gérance à M. X.... 
      </search:match> 
     </tool-tip> 
     <title>Cour de cassation, 2e chambre civile, 9 Juillet 2015 – n° 
      14-21.758 
     </title> 
    </search:snippet> 
</search:result> 
<search:result index="4" uri="/DOCS/JP_KASS-0007470_MAR03.xml" 
    path="fn:doc(&quot;/DOCS/JP_KASS-0007470_MAR03.xml&quot;)" score="98304" 
    confidence="0.459376" fitness="0.676263"> 
    <search:snippet> 
     <src-term>compte-courant</src-term> 
     <tool-tip> 
      <search:match> 
       ALORS QUE, D'AUTRE PART, en considérant que l'enregistrement des 
       redevances sur un 
       <search:highlight>compte-courant</search:highlight> 
       personnel valait mise à disposition des redevances de la location 
       gérance à M. X.... 
      </search:match> 
     </tool-tip> 
     <title>Cour de cassation, 2e chambre civile, 9 Juillet 2015 – n° 
      14-21.755 
     </title> 
    </search:snippet> 
</search:result> 
<search:qtext /> 
<search:metrics> 
    <search:query-resolution-time>PT0S</search:query-resolution-time> 
    <search:facet-resolution-time>PT0S</search:facet-resolution-time> 
    <search:snippet-resolution-time>PT0.672S 
    </search:snippet-resolution-time> 
    <search:total-time>PT0.672S</search:total-time> 
</search:metrics> 

回答

0

我認爲你正在運行到的問題是,默認的搜索語法把連字符爲「不」,所以它尋找「孔特」或「 comptes「沒有年份。這可能是一個不同的問題,但我知道我們在最近的一個項目中有這個問題......嘗試爲您的選項添加不同的搜索語法。您也可以將您的搜索字符串用引號括起來,這樣它就是文字,但是您會失去「模糊」匹配。

這裏是一個要爲這項工作語法,如果根本原因是什麼,我認爲它是:

<grammar xmlns="http://marklogic.com/appservices/search"> 
     <quotation>"</quotation> 
     <implicit> 
     <cts:and-query strength="20" xmlns:cts="http://marklogic.com/cts"/> 
     </implicit> 
     <starter strength="30" apply="grouping" delimiter=")">(</starter> 
     <joiner strength="10" apply="infix" element="cts:or-query" 
     tokenize="word">OR</joiner> 
     <joiner strength="20" apply="infix" element="cts:and-query" 
     tokenize="word">AND</joiner> 
     <joiner strength="30" apply="infix" element="cts:near-query" 
     tokenize="word">NEAR</joiner> 
     <joiner strength="30" apply="near2" consume="2" 
     element="cts:near-query">NEAR/</joiner> 
     <joiner strength="32" apply="boost" element="cts:boost-query" 
     tokenize="word">BOOST</joiner> 
     <joiner strength="35" apply="not-in" element="cts:not-in-query" 
     tokenize="word">NOT_IN</joiner> 
     <joiner strength="50" apply="constraint">:</joiner> 
     <joiner strength="50" apply="constraint" compare="LT" 
     tokenize="word">LT</joiner> 
     <joiner strength="50" apply="constraint" compare="LE" 
     tokenize="word">LE</joiner> 
     <joiner strength="50" apply="constraint" compare="GT" 
     tokenize="word">GT</joiner> 
     <joiner strength="50" apply="constraint" compare="GE" 
     tokenize="word">GE</joiner> 
     <joiner strength="50" apply="constraint" compare="NE" 
     tokenize="word">NE</joiner> 
    </grammar>