2014-03-05 52 views
2

我有这个问题,我无法解决。部分原因是我无法用正确的术语解释它。我对此很陌生,所以对于这个笨拙的问题感到抱歉。如何从一个PHP变量Solr服务器获取建议

您可以在下面看到我的目标概览。

我使用的是Magento CE 1.7.0.2 & Solr 4.6.0。

Solr中

我搜索与拼写检查工作与IPHON,而不是iphone Solr的拼写检查抛出这些建议。

<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> 

我希望拼写检查功能工作正常。

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

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:iphone

任何想法?

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

回答

相关问题