为什么 Solr 拼写检查中的排序规则结果为空

兰迪克·曼努勒

我已经使用 IndexBasedSpellChecker 配置了一个 Solr 拼写检查组件,其核心包含国家/地区名称:

<searchComponent name="indexBasedSpellCheck" class="solr.SpellCheckComponent">
    <lst name="spellchecker"> 
      <str name="name">indexBasedSpellCheck</str>
      <str name="classname">solr.IndexBasedSpellChecker</str> 
      <str name="spellcheckIndexDir">./indexspellchecker</str> 
      <str name="field">name</str> 
      <str name="buildOnCommit">true</str> 
      <str name="distanceMeasure">org.apache.lucene.search.spell.LevensteinDistance</str> 
      <str name="accuracy">0.5</str>
    </lst>
  </searchComponent>

还有一个用于拼写检查的请求处理程序:

<requestHandler name="/index-spell" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
      <str name="spellcheck.dictionary">idxBasedSpellCheck</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>
    </lst>
    <arr name="last-components"> 
      <str>indexBasedSpellCheck</str>
    </arr>
  </requestHandler>

当我请求时:

curl 'http://localhost:8983/solr/mycore/index-spell?indent=on&spellcheck.q=tanaz&wt=json&spellcheck.collate=true'

我在以下建议中得到结果:

 "spellcheck":{
    "suggestions":[
      "tanaz",{
        "numFound":3,
        "startOffset":0,
        "endOffset":5,
        "origFreq":0,
        "suggestion":[{
            "word":"canada",
            "freq":1},
          {
            "word":"panama",
            "freq":1},
          {
            "word":"tanzania",
            "freq":1}]}],
    "correctlySpelled":false,
    "collations":[]}

为什么我的排序规则是空的?我的请求中有拼写检查.collat​​e=true。

米洛基

我认为您df在请求中缺少(默认字段)参数。添加df=name您的请求:

http://localhost:8983/solr/mycore/index-spell?indent=on&spellcheck.q=tanaz&wt=json&spellcheck.collat​​e=true&df=name

您也可以在您的请求处理程序默认值中配置它,因此您不需要在请求中发送它。

<requestHandler name="/index-spell" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
       ...
      <str name="df">name</str>
       ...
    </lst>
    <arr name="last-components"> 
      <str>idxBasedSpellCheck</str>
    </arr>
  </requestHandler>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Solr中的存储字段正在查询中显示,为什么?

为什么 Apache solr 中的值发生了变化?

为什么我无法在Solr 4.10.4中创建核心“博客”?

在SOLR中,为什么字段不被存储并且不被索引?

为什么我不能在JBoss上的Solr中实例化DataImportHandler?

为什么Solr导入后会删除文档

为什么在SOLR中出现EarlyTerminateCollectorException?

什么时候在SOLR中驻扎?

什么 JavaServlet 用于 Laradock 中的 Solr 实例?

什么将取代 Solr 9.0 中的 DataImportHandler?

为什么我无法在Solr字段中搜索第一个单词或最后一个单词?

为什么在Java中检测到的语言结果为空

为什么解码返回结果为空

为什么strcat的结果为空

Solr和拼写排除结果中的简短单词

Solr中的条件排序

为什么 Solr 在只执行 Update 时删除文档?

为什么Solr查询不能在空格上工作?

Solr 中的 Dsolr.clustering.enabled 是什么?

Solr中查询的默认字段是什么

为什么$ _POST在codeigniter中为空?

为什么$ argv在zsh中为空?

我在solr中创建了一个新的内核,并且一旦我重新启动了Tomcat服务器,该内核就被删除了。为什么在solr中的内核被删除了?

为什么要在MySQL中为UTF8文本数据设置排序规则?

如何确定为什么在SOLR响应中返回的某些文档可能与给定的关键字搜索不相关?

基于Solr规则的提升

为什么queryParams为空

为什么OutputDebugString为空

为什么FormData为空?