【问题标题】:Search suggestions in django-oscar using solr使用 solr 在 django-oscar 中搜索建议
【发布时间】:2017-08-16 16:40:57
【问题描述】:

我已经按照documentation 设置了一个 django-oscar 项目并在其上启用了 solr 4.7.2。

Solr 似乎工作正常。测试 'exxample' 的建议 (localhost:8983/solr/collection1/spell?spellcheck.q=exxample&spellcheck=true>) 我得到:

<response>
  <lst name="responseHeader">
     <int name="status">0</int>
     <int name="QTime">10</int>
  </lst>
  <result name="response" numFound="0" start="0"/>
     <lst name="spellcheck">
        <lst name="suggestions">
          <lst name="exxampl">
              <int name="numFound">1</int>
              <int name="startOffset">0</int>
              <int name="endOffset">8</int>
              <int name="origFreq">0</int>
              <arr name="suggestion">
                 <lst>
                    <str name="word">exampl</str>
                    <int name="freq">2</int>
                 </lst>
              </arr>
           </lst>
           <bool name="correctlySpelled">false</bool>
           <lst name="collation">
               <str name="collationQuery">exampl</str>
               <int name="hits">2</int>
               <lst name="misspellingsAndCorrections">
                   <str name="exxampl">exampl</str>
               </lst>
            </lst>
         </lst>
     </lst>
</response>

我还启用了OSCAR_SEARCH_FACETS 以确保 Django-Oscar 已正确注册 Solr,并且它似乎工作正常。

但是,当我在 django-oscar 中对一个简单的拼写错误进行测试搜索时,我得到 0 个返回的搜索结果并且没有任何建议。我不确定下一步该怎么做。

我们将不胜感激!

【问题讨论】:

    标签: solr search-suggestion django-oscar


    【解决方案1】:

    我已经设法解决了这个问题。我将编写完整的解决方案来设置 Solr,并在 Django-Oscar 上提供拼写建议,因为设置过程需要对官方文档中描述的内容进行调整。这也是我第一次使用 Solr(或任何搜索引擎),所以不要期待一些专家的指导,只是关于如何在 Oscar 上启动和运行 Solr 的指南。

    我正在使用 Oscar 1.5 和 Solr 4.7.2(解决方案也适用于 4.10.4 ...不确定其他版本)。按照documentations 执行所有操作 - 请注意,

    安装并运行 Solr 后,您可以在 Solr 服务器上测试查询 @ localhost:8983/solr/collection1/spell?spellcheck.q=[您的搜索查询在此处;没有括号]&spellcheck=true>。需要是您数据库中的一个词 - 在产品描述或产品标题中。

    你会得到一个错误结果,说 Analyzer 需要是相同的类型。通过编辑位于 ./solr-4.7.2/example/solr/collection1/conf/solrconfig.xml 的 solrconfig.xml 文件来解决此问题。搜索&lt;str name="field"&gt;,并将每个未注释的实例更改为&lt;str name="field"&gt;text&lt;/str&gt; - 您也可以将每个实例更改为&lt;str name="field"&gt;title&lt;/str&gt;,但这仅限于在标题中找到的单词。重新启动 Solr 服务器。这些更改将消除分析器错误,您的 Solr 服务器现在将开始显示结果,但它们还不会被输入到您的 Oscar 站点。

    要解决此问题,您需要对同一个 solrconfig.xml 文件进行另一次调整。搜索&lt;requestHandler name="/select" class="solr.SearchHandler"&gt;,并在此请求处理程序的底部包含以下代码:

     <arr name="last-components">
        <str>spellcheck</str>
     </arr>
    

    重启服务器。现在您的 Oscar 网站中有拼写建议。希望其他人发现这很有帮助。就像我说的——这是我第一次使用 Solr。如果有人要在 Oscar 上添加或扩展 Solr 功能,那就太好了。

    【讨论】:

    • 它帮助了我,因为我使用 Solr 进行搜索,我想添加它,就像它提供一个单词搜索然后它暗示你是这个意思,所以我们可以以某种方式来做比建议你的意思是点击直接搜索结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多