Разделы

  
 

Вывод Шаблона результатов поиска в simpleSearch

Уважаемое сообщество!
Подскажите пожалуйста как сделать шаблон для вывода результатов поиска в simpleSearch

Заранее спасибо!

Поиск по сайту при помощи Sphinx

После долгих ковыряний AjaxSearch пришел к выводу, что нормального релевантного fulltext поиска на сайте у меня не получиться сделать. Наткнулся в просторах интернета на замечательную шутку под названием Sphinx.

Что такое Sphinx?
Много рассказывать не буду, так как в сети есть куча информации на данную тему. Sphinx — бесплатный поисковый движек, созданный для индексации содержимого баз данных и поиска по созданным индексам.

Установка:

Внимание! Если у Вас не выделенный сервер (или VPS) ничего сделать не получиться, так как придется устанавливать дополнительное ПО. Сниппет написан для версии MODx Evolution

Мануал для установки sphinx на сервер я нашел для себя тут: adw0rd.ru/2009/sphinxsearch/

Вот мой конфиг sphinx.conf

source site
{
        type = mysql
        sql_host = localhost
        sql_user = user bd
        sql_pass = password bd
        sql_db = name bd
        sql_port = 3306
        sql_query_pre = SET NAMES utf8
	sql_query_pre = SET CHARACTER_SET_RESULTS=utf8
	sql_query_pre = SET CHARACTER SET utf8
	sql_query = select ID as id, pagetitle, content, longtitle, introtext FROM modx_site_content where published = 1
        sql_query_info = SELECT * FROM modx_site_content WHERE ID = $id
        sql_ranged_throttle = 0
}


index site
{
        source = site
        path = /home/sphinx/data/site
        docinfo = extern
        mlock = 0
        morphology = stem_enru
        min_word_len = 2
        charset_type = utf-8
        charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
        min_infix_len = 2
        enable_star = 1
}
searchd
{
	listen = 127.0.0.1:3312
        log = /home/sphinx/log/searchd.log
        query_log = /home/sphinx/log/query.log
        read_timeout = 5
        max_children = 50
        pid_file = /etc/sphinx/log/searchd.pid
        max_matches = 1000
}


Если у Вас все получилось установить и даже проверить работоспособность командой
# search --config /home/sphinx/sphinx.conf искомая комбинация

… то половина дела сделано.

Приступим к установки sphinx поиска для MODx.

Скачиваем вот этот архив.
Распаковываем архив в папку assets/snippets/sphinx/

Создаем новый сниппет с названием: sphinx
Содержимое сниппета:

include_once($modx->config['base_path'].'/assets/snippets/sphinx/sphinx.engine.php');


Создаем чанки.

sphinxcountoutput
[+found+] <b>[+total+]</b> [+resultat+]

sphinxno
Необходимо не менее 3 символов в запросе для поиска


sphinxnoresults
По вашему запросу ничего не найдено. Попробуйте ввести похожие по смыслу слова, чтобы получить лучший результат.


sphinxoutput
<a href="/[~[+sphinx.id+]~]" title="">[+sphinx.pagetitle+]</a>


Создаем дочерний русурс с название Поиск по сайту. Обязательно отключите кеширование ресурса. Содержимое ресурса:
[[sphinx? &db=`site`]]


Описание сниппета:
Сниппет принимает 2 параметра:
1. query (GET, POST). Где query слова для поиска.
2. db — Название индекса sphinx. в моем примере название site

Если все прошло гладко и Вы правильно все настроили — поиск заработает.
Рабочий пример можно увидеть здесь www.brutwatch.ru или здесь dev.kinobin.ru (во втором примере я начал прикручивать вывод из TV параметров)

Несомненно, это сырая версия. Написал сниппет за 2 часа. Если кого заинтересует, буду обязательно выкладывать модифицированные версии.

AjaxSearch 1.9.2 + Modx 1.0.6 = bug

в результате не видно параметров TV (картинки и цена): сам вызов
[!AjaxSearch? &showInputForm=`0` &withTvs=`image,price` &tvPhx=`image,price` &extract=`5` &pageLinkSeparator=` : ` &grabMax=`20` &ajaxSearch=`0` &debug=`0`!]

в шаблоне «result.tpl.html» пробовал писать
[+as.tvprice+] [+as.price+]  [+as.tv_price+]


*могу дать дамп — при запросе, в личку
  • +1
  • 11 апреля 2012, 04:20
  • doc555
  • 1

Звездный рейтинг в результатах поиска Google



Для тех кто не понял о чем вообще все это — вот определение Яндекса:

Schema.org – это стандарт семантической разметки данных в сети, объявленный поисковыми системами Google, Bing и Yahoo! летом 2011 года.
Цель семантической разметки – сделать интернет более понятным, структурированным и облегчить поисковым системам и специальным программам извлечение и обработку информации для удобного её представления в результатах поиска.

( Читать дальше )
  • +4
  • 1 апреля 2012, 22:15
  • Bartol
  • 3

Как тут пользоваться поиском?

Как тут пользоваться поиском? Что бы я не вводил в поле вверху, результат все время один и тот же:



Хочется сделать пару переводов доков на русский, но не могу проверить делали их уже или нет. Не хочется повторяться…
  • 0
  • 29 марта 2012, 12:16
  • DWand
  • 14

Поиск по тегам

Хорошо хоть поиск по тегам работает )
community.modx-cms.ru/tag/revo

Как AjaxSearch заставить искать по своей таблице

Вопрос, кроме документов можно AjaxSearch заставить еще искать в свой таблице в базе данных
или лучше писать отдельный поиск, тогда может есть готовое решение для модекс

Это нормально?

В поиске комьюнити, данные обрамленные в тег code обрабатываются как элементы html страницы!
Вот пример
http://community.modx-cms.ru/search/topics/page2/?q=eform
<script>
alert('test')
</script>
  • +2
  • 28 февраля 2012, 02:59
  • vanchelo
  • 9

Выпадающий список с выбором разделов для поиска AjaxSearch

К примеру есть структура:
-Раздел 1
--Подраздел 1
---товар подраздела 1
---товар подраздела 1
--Подраздел 2
---товар подраздела 2
---товар подраздела 2

Как прикрутить выпадающий список для поиска только в «Раздел 1» или в «Подраздел 1» или в «Подраздел 2» и т.д. к вызову AjaxSearch?

Пример такого поиска на сайте www.med74.ru/

[REVO 2.2.0pl2] Подсветка результатов поиска на странице документа

Переношу интранет-сайт с Evo на Revo.

Не получается сделать подсветку слов из запроса не только на странице результатов поиска, но и после перехода на страницу документа, как это было в AjaxSearch.

Пробовал дополнения SimpleSearch и AdvSearch, оба добавляют подсветку только на страницу результатов.

Это я туплю, или такой возможности нет в этих сниппетах?