Добро пожаловать на сайт Bitrix Q&A, где вы можете задавать вопросы о программировании и разработке на Битрикс и получать быстрые и квалифицированные ответы от профессионалов!


Как сделать поиск по описанию товара?

0 голосов

С Битриксом работаю впервые и поражаюсь... Насколько же здесь все замудренно... Даже через чур, но суть вопроса такова. 
Результаты поиска по сайта выдаются на не стандатрном шаблоне и поиск идет только по свойствам и только при полном совпадении искомого слова и значения свойства.. 

Вот тот кусок:

if ($_GET["q"])
{
    $arrFilter[] = array(
      "LOGIC" => "OR",
      array("%PROPERTY_METRO_VALUE" => trim($_GET["q"])),
      array("PROPERTY_DISTRICT_VALUE" => trim($_GET["q"])),
 array("PROPERTY_PLACE_VALUE" => trim($_GET["q"]))
    );
}
Как сделать здесь поиск вопервых по тексту, а во вторых чтобы при поиске слова "Москв" выдавались результаты и где есть "Москва" и "Москвичи".?

Но больше всего интересует поиск по тексту... 

Подскажите пожалуйста. 
спросил 10 Июль, 15 от Rattlesneyk (140 баллов)

1 Ответ

0 голосов

Битрикс система очень мощная. По этому она и сложная, и уходит время на её обучение. Вот вы в примере кода пытаетесь сделать поиск "с нуля" чуть ли ни на SQL запросах. Вам же нужно будет реализовать стемминг, что совсем не простая задача, если посмотрите в Википедии. Вам нужно организовать подсчет релевантности, да и вопрос производительности встанет во весь рост - после правильного стемминга поиск нужно будет провести не по N записей, а по N*M(словоформ) записей, у тут придётся создавать таблицы в БД, ругаться что Битрикс тормозит ... )))

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

На самом деле есть еще и API, которое позволяет на этапе формирования запроса ограничить область поиска конкретным инфоблоком. Ну и в результате поиска вы, конечно, получаете небольшй набор ID элементов, которые уже можно вручную проверить по каким-то критериям.

ответил 11 Июль, 15 от zixoru (900 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 20 Июль, 15 от Rattlesneyk (140 баллов)
0 голосов
0 ответов
спросил 18 Июль, 15 от аноним
0 голосов
1 ответ
0 голосов
0 ответов
Управление продуктом: аналитика, разработка, продвижение