Intereting Posts
SQL-запрос с двоичными данными (PHP и MySQL) Couchbase PHP SDK: Как обнаружить отказ couchbase-соединения? Ошибка генерации symfony2 Невозможно переопределить класс Как объединить 3 массива в один большой массив (те же ключи) Должен ли я генерировать каждую миниатюру динамически каждый раз, когда она запрашивается, или сохранять их при загрузке изображения? Ajax: запрос CROS-DOMAIN не устанавливает файлы cookie с помощью Safari IOS с использованием PHP WooCommerce переименует поле «Бесплатная доставка» в кассе 403 Запрещено при передаче URL в переменной GET Как найти значение в массиве и удалить его с помощью функций массива PHP Codeigniter + HMVC + REST Как удалить все экземпляры дублированных значений из массива Открытие файла CSV Inline в браузере, а не приглашение DL Перестановки массива массивов строк Проблема с Apache в Xampp после установки нескольких Apache Сшивание нескольких видео без разрыва

Как получить предложения от Solr Server в переменной PHP

У меня есть эта проблема, которую я не могу решить. Отчасти потому, что я не могу объяснить это правильными условиями. Я новичок в этом, так жаль этот неуклюжий вопрос.

Ниже вы можете увидеть обзор моей цели.

Я использую Magento CE 1.7.0.2 & Solr 4.6.0.

Работа с проверкой орфографии в Solr

Я ищу с iphon вместо iphone solr Spell Checker, бросая эти предложения.

<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 работает нормально.

Вот файлы My 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> 

Теперь, Моя цель – показать эти Предложения в frontend just like, Точно как Did you mean: имели в Did you mean: iphone

Есть идеи ?

Как я могу получить эти предложения в интерфейсе?

Кажется, что ваше автоматическое предложение работает (оно показывает «iphone» в ответе). Чтобы правильно отобразить его на front-end, запросите экземпляр solr с помощью параметра «wt = json» и проанализируйте результат в jquery, чтобы отобразить его любым способом. http://www.jqueryautocomplete.com/jquery-autocomplete-json-example.html