Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Поиск с помощью модуля Sphinx (http://drupal. org/project/sphinx)

Написание модуля согласно API Sphinx (http://www. /docs/current. html)

В поле поиска нужно обязательно фильтровать спецсимволы (/\,—, %, & и другие). Лучше всего это сделать массивом, чтобы мы могли сами добавлять туда символы. Например, сейчас на такой вот запрос поиск выдает ошибку: http://www. yarcom. ru/search? keys=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9+%D0%B0%D0%BD%D1%82%D0%B8%D0%BC%D0%BE%D0%BD%D0%BE%D0%BF%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9+%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B+%D0%BF%D0%BE+%D0%AF%D1%80%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%BE%D0%B9+%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D0%B8+%2F+%D0%A3%D0%A4%D0%90%D0%A1+%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8&op. x=0&op. y=0&op=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&types=yarcom_org

(сам запрос: Управление Федеральной антимонопольной службы по Ярославской области / УФАС России). Чтобы поиск сработал, достаточно убрать / . Тоже самое и с другими спецсимволами. Соответственно, лучше делать отправку данных через POST, чтобы можно было из запроса убирать ненужное.

Если поиск будет через xmlpipe, то нужно:

1.  Обеспечить возможность разбивать индексы на произвольные куски. Например:

http://www. /sphinxsearch_scripts/sphinxsearch_xmlpipe. php? mode=main&id=0&first_nid=0&last_nid=99999

http://www. /sphinxsearch_scripts/sphinxsearch_xmlpipe. php? mode=main&id=1&first_nid=100000&last_nid=199999

НЕ нашли? Не то? Что вы ищете?

http://www. /sphinxsearch_scripts/sphinxsearch_xmlpipe. php? mode=main&id=2&first_nid=200000

http://www. /sphinxsearch_scripts/sphinxsearch_xmlpipe. php? mode=delta
(Подробнее здесь: yarcom. ru/sites/all/modules/sphinxsearch/docs)

2.  Обязательна поддержка одного или нескольких main-индексов и одного delta-индекса.

3.  Соответственно, поиск должен работать сразу по всем main и delta-индексам (Создается виртуальный индекс, который объединяет нужные настоящие индексы. В текущем конфиге сфинкса это уже есть. Индекс yarcom_join).

4.  Автокомплит тоже должен искать по всем индексам.

1.  Для каждой вкладки должен быть отдельный индекс (или один, как проще будет. Лишь бы выполнялись условия ниже по тексту).

2.  Индексы формируются путем написания SQL-запросов в конфиге Sphinx

3.  Наборы полей для поиска:

a.  Вкладка «Всё»: поиск по районам, городам, улицам, торговым центрам, домам, телефонам, факсам (всех филиалов), подробной информации у компаний (по всем вкладкам), комментариям, по полям title, body, teaser всех материалов (в том числе, организаций), поиск по всем терминам таксономии. Поиск по всем материалам, которые есть или будут на сайте. Выдача либо SPH_MATCH_ALL либо SPH_MATCH_PHRASE (http:///docs/current. html#matching-modes)

b.  Вкладка «Компании»: поиск по районам, городам, улицам, торговым центрам, домам, телефонам, факсам (всех филиалов), подробной информации у компаний (по всем вкладкам), поиск по словарям таксономии, которые привязаны к типу материалов «Организация» (справочник и товары, услуги), по полям title, body, teaser. Тут не могу определиться с названием выдачи. Хочется искать так: http://www. yarcom. ru/search? keys=кафе+кирова&op=НАЙТИ
http://www. yarcom. ru/search? keys=банк+урицкого
http://www. yarcom. ru/search? keys=банк+тутаев
Т. е., вводить название заведения и улицу или населенный пункт

c.  Вкладка «Товары, услуги»: поиск по всему словарю «Товары, виды деятельности». Поиск только по этому словарю. Тут желательно точное совпадение поисковому запросу. Например, человек ввел «утилизация оргтехники», ему должны вывестись компании, у которых именно это сочетание слов присутствует в поле Товары, виды деятельности. Кажется, это выдача SPH_MATCH_PHRASE. Сделать возможным «поднимать» в результатах поиска по товарам и услугам КОММЕРЧЕСКИЕ компании (те – что на комм. основе), у которых заданы нужные товары и виды деятельности. Желательно, чтобы это решалось путем простой «установки галки». Т. е. – заданы товары, стоит галка – компания выводится в топе поиска. Снял галку – выдача по принципу релевантности (http://www. /forum/view. html? id=4593)

d.  Вкладка «Новости»: поиск по title, teaser, body новостей + поиск по словарю Тэги (он привязан к новостям)

e.  Вкладка «Афиша»: поиск по материалам, которые находятся в словаре Афиша Ярославля и области. Поиск по body, title, teaser, полям field_event_film_eng, field_event_film_dir, field_event_guest, field_event_resident, field_event_dj, field_event_autor, field_event_place. Либо просто по всем полям материалов, которые привязаны к афише, если так будет проще.

f.  Вкладка «Объявления»: поиск по материалам, которые находятся в словаре Объявления Ярославля и Ярославской области. Поиск по body, teaser, title

4.  Делать интерфейс в админке для добавления новых вкладок для поиска не надо. Нужно просто заложить такую возможность (чтобы, в дальнейшем, тебе можно было просто и легко добавить поиск по другим словарям).

5.  Подсказки вводимых слов. В зависимости от вкладки данные берутся из соответствующего индекса сфинкса. Если есть возможность в API отключить поиск по корням слов конкретно для подсказок, то надо это сделать. Чтобы выводились точные результаты на вводимое слово. Подсказки должны срабатывать после первого клика. Пример: www. yandex. ru. Там это работает так: человек начинает вводить слово, ему выдаются подсказки. Вне зависимости от того, выбрал ли он слово из подсказок, либо просто нажал Enter, запрос сразу же идет на сервер.
В подсказках совпадение должно быть не только с первого слова в названии материала, но и с любого слова в предложении.
Возможно, стоит попробовать вот этот автокомплит: http://habrahabr. ru/blogs/jquery/74713/ (Кроме того, у него есть несколько уникальных функций, такие как использование разделителей, поиск по нескольким словам…)
Или этот: http://plugins. /project/autocompletex (ищет не только с первого слова)
Еще один: http://bassistance. de/jquery-plugins/jquery-plugin-autocomplete/

6.  Выдача результатов поиска:

a.  Сортировка результатов для всех вкладок: SPH_SORT_RELEVANCE (http:///docs/current. html#sorting-modes)

b.  Title

c.  Текстовый сниппет, в котором должны выводиться все найденные слова (в контексте, разумеется). http:///docs/current. html#api-func-buildexcerpts
512 символов, по 5 слов вокруг найденной фразы (limit=512, around=5)

d.  Термины таксономии (для организаций - рубрики)

e.  Дополнительные тэги материала (для организаций - из словаря Товары, виды деятельности, для новостей – из словаря Тэги)

7.  Прочее по поиску:

a.  Все вкладки поиска должны поддерживать мультизапросы и фасетный поиск (http://habrahabr. ru/blogs/sphinx/64318/ - очень важный абзац «Зачем использовать мульти-запросы?»). Новый модуль Sphinx на сайте поддерживает фасетный поиск из коробки.

b.  Поддержка морфологии, стоп-слов, файла-словаря (все это настраивается в конфиге, я сам настрою).

c.  В письме во вложении будет рабочий конфиг сфинкса. Запросы к базе выполняются в индексах yarcommap, ipb. Индекс ipb интересен тем, что используется два индекса: основной и дельта. Лучше за основу взять его. Пример по индексации друпала находится в индексе yarcommap.

d.  Над результатами поиска можно выводить отладочную информацию для группы админов.

e.  Модуль на сайте включен и работает: http://new2.yarcom. ru/admin/settings/sphinx
Если будешь его себе ставить, лучше возьми с сервера полностью папку модуля (/var/www/new2/sites/all/modules/sphinx). Там были определенные нюансы по установке. Я их устранил.

8.  Полезные ссылки:

a.  http://habrahabr. ru/blogs/sphinx/

b.  http://anton. shevchuk. name/php/sphinx-for-not-full-text-search/

c.  http://groups. drupal. org/taxonomy/term/4448

d.  http:///downloads/sphinx_talk. pdf (с 20 страницы)

e.  http:///node/129

f.  http://selikoff. ru/webmaster/bistriy_poisk/