簡體   English   中英

SOLR Spellcheck沒有返回結果

[英]SOLR Spellcheck not returning results

我對solr 6.5.0的拼寫檢查組件有一個惱人的問題。 如果我通過拼寫檢查請求處理程序/ spell運行查詢,則查詢按預期工作,我會得到錯誤單詞的建議拼寫。

{
  "responseHeader":{
    "status":0,
    "QTime":42},
  "response":{"numFound":0,"start":0,"docs":[]
  },
  "spellcheck":{
    "suggestions":{
      "injary":{
        "numFound":3,
        "startOffset":0,
        "endOffset":6,
        "origFreq":0,
        "suggestion":[{
            "word":"injury",
            "freq":121},
          {
            "word":"inward",
            "freq":3},
          {
            "word":"injure",
            "freq":1}]}},
    "correctlySpelled":false,
    "collations":{
      "collation":{
        "collationQuery":"injury",
        "hits":121,
        "misspellingsAndCorrections":[
          "injary","injury"]},
      "collation":{
        "collationQuery":"inward",
        "hits":3,
        "misspellingsAndCorrections":[
          "injary","inward"]},
      "collation":{
        "collationQuery":"injure",
        "hits":1,
        "misspellingsAndCorrections":[
          "injary","injure"]}}}}

但是如果我通過標准請求處理程序/ select運行查詢,我就得不到任何建議。

{
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"injary",
      "indent":"on",
      "spellcheck":"on",
      "wt":"json",
      "_":"1492780436450"}},
  "response":{"numFound":0,"start":0,"docs":[]
  }}

任何幫助將不勝感激。

我修改了solrconfig.xml以將兩個請求處理程序放入行中,如下所示,其余的是默認值:

     <lst name="spellchecker">
        <str name="name">default</str>
        <str name="field">content</str>
        <str name="classname">solr.DirectSolrSpellChecker</str>
        <str name="distanceMeasure">internal</str>
        <float name="accuracy">0.5</float>
        <int name="maxEdits">2</int>
        <int name="minPrefix">1</int>
        <int name="maxInspections">5</int>
        <int name="minQueryLength">4</int>
        <float name="maxQueryFrequency">0.01</float>
        <float name="thresholdTokenFrequency">.0001</float>
      </lst>

  <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
      <!-- Solr will use suggestions from both the 'default' spellchecker
           and from the 'wordbreak' spellchecker and combine them.
           collations (re-written queries) can include a combination of
           corrections from both spellcheckers -->
      <str name="spellcheck.dictionary">default</str>
      <str name="spellcheck">on</str>
      <str name="spellcheck.extendedResults">true</str>
      <str name="spellcheck.count">10</str>
      <str name="spellcheck.alternativeTermCount">5</str>
      <str name="spellcheck.maxResultsForSuggest">5</str>
      <str name="spellcheck.collate">true</str>
      <str name="spellcheck.collateExtendedResults">true</str>
      <str name="spellcheck.maxCollationTries">10</str>
      <str name="spellcheck.maxCollations">5</str>
      <str name="wt">json</str>
    </lst>
    <arr name="last-components">
      <str>spellcheck</str>
    </arr>
  </requestHandler>

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
    <lst name="defaults">
      <str name="echoParams">explicit</str>
      <int name="rows">10</int>
      <str name="df">_text_</str>
      <str name="wt">json</str>
      <!-- spell check component configuration -->
      <str name="spellcheck">true</str>
      <str name="spellcheck.count">5</str>
      <str name="spellcheck.collate">true</str>
      <str name="spellcheck.maxCollationTries">5</str>
    </lst>
    <arr name="last-components">
      <str>spellcheck</str>
    </arr>
    </requestHandler>

問題似乎與我的托管模式文件有關。

我正在解析XML文件,solr會自動將XML文件的字段作為類型字符串添加到managed-schema文件中。 當我更改字典字段以鍵入text_general時,它開始按預期工作。

我無法看到這是如何工作的,但我沒有做任何其他改變。 我刪除了我的核心並從頭開始,以確保我沒有弄錯,但它有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM