如何在PHP变量中从Solr Server获取建议 [英] How Get Suggestions from Solr Server in a PHP variable

查看:84
本文介绍了如何在PHP变量中从Solr Server获取建议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了无法解决的问题.部分原因是我无法用正确的术语来解释它.我是新来的,对这个笨拙的问题感到抱歉.

I've got this problem that I can't solve. Partly because I can't explain it with the right terms. I'm new to this so sorry for this clumsy question.

下面您可以看到我的目标概述.

Below you can see an overview of my goal.

我正在使用Magento CE 1.7.0.2& Solr 4.6.0.

I'm using Magento CE 1.7.0.2 & Solr 4.6.0.

在Solr中使用拼写检查器

我正在使用 iphon 而不是 iphone 进行拼写检查的solr拼写检查器进行搜索.

I'm Searching with iphon instead of iphone the solr Spell Checker throwing these suggestions.

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">48</int>
  </lst>
  <str name="command">build</str>
    <result name="response" numFound="0" start="0"></result>
    <lst name="spellcheck">
      <lst name="suggestions">
        <lst name="iphon">
           <int name="numFound">1</int>
           <int name="startOffset">0</int>
           <int name="endOffset">5</int>
           <int name="origFreq">0</int>
           <arr name="suggestion">
             <lst>
                <str name="word">iphone</str>
                <int name="freq">27</int>
             </lst>
           </arr>
        </lst>
        <bool name="correctlySpelled">false</bool>
      </lst>
    </lst>
</response>

我希望SpellCheck功能能正常工作.

I hope the SpellCheck functionality is working fine.

这是我的 Schema.xml & solrconfig.xml 文件...

Here is My Schema.xml & solrconfig.xml files...

schema.xml

<field name="didyoumean" type="text_general" indexed="true" stored="false" multiValued="true"/>
<copyField source="fulltext" dest="didyoumean"/>

solrconfig.xml

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
    <str name="queryAnalyzerFieldType">didyoumean</str>
    <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">didyoumean</str>
      <str name="spellcheckIndexDir">./spellchecker</str>
      <str name="buildOnOptimize">true</str>
      <str name="buildOnCommit">true</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>
    </lst>
    <lst name="spellchecker">
      <str name="name">jarowinkler</str> 
      <str name="field">didyoumean</str>
      <str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>
      <str name="spellcheckIndexDir">./spellchecker2</str>
    </lst>
</searchComponent>
<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
      <str name="df">name</str>
      <str name="spellcheck.dictionary">default</str>
      <str name="spellcheck">on</str>
      <str name="spellcheck.onlyMorePopular">true</str>
      <str name="spellcheck.dictionary">wordbreak</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">true</str>
      <str name="spellcheck.build">true</str>
      <str name="spellcheck.maxCollations">5</str>         
    </lst>
    <arr name="last-components">
      <str>spellcheck</str>
    </arr>
  </requestHandler>

现在,我的目标是像Did you mean:

Now, My goal is to display this Suggestions in frontend just like Did you mean: iphone

有什么想法吗?

我如何在前端获得这些建议?

How can i get these suggestions in frontend ?

推荐答案

您的自动建议似乎正在起作用(响应中显示"iphone").要在前端正确显示它,请使用参数'wt = json'查询solr实例,并在jquery中解析结果以所需的任何方式显示它. http://www.jqueryautocomplete.com/jquery-autocomplete-json-example.html

Your auto-suggest seems to be working (it's showing 'iphone' in the response). To display it properly on the front-end, query the solr instance using the param 'wt=json' and parse the result in jquery to display it in any fashion you want. http://www.jqueryautocomplete.com/jquery-autocomplete-json-example.html

这篇关于如何在PHP变量中从Solr Server获取建议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆