Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
TroL пишет:
Как реализовать такой поиск?
Строго говоря, чтобы отобразить релевантные результаты по запросу "1 комнатная квартира в новокузнецке", ваша база данных должна содержать следиующие данные по объектам:
1. Тип недвижимости (квартира)
2. Количество комнат (1)
3. Геозона (Новокузнецк)
4. Тип сделки (снять, купить, сдать и проч.)
Далее путём выбора фильтров или ввода текста для поиска (первый вариант удобнее и для пользователя и для разработчика) формируете запрос к вашей пс. Если все же будете использовать текстовое поле вместо фильтров, то применение Sphinxa (которого вам порекомендовал Lime) и аналогов будет целесообразным. В этом случае нужно будет правильно настроить индексы и скормить сфинксу базу, чтобы индексы содержали приближенные к поисковым фразам значения. Также потребуется тонко настроить синонимы в файле конфигурации.
Если же поиск недвижимости ведётся по фильтрам (а он и должен таким быть), то можно обойтись sql-запросом к базе данных (пример — http://realty[dot]sarbc[dot]ru )
Покинул форум
Сообщений всего: 73
Дата рег-ции: Нояб. 2012
Помог: 0 раз(а)
Zuldek пишет:
TroL пишет:
Как реализовать такой поиск?
Если же поиск недвижимости ведётся по фильтрам (а он и должен таким быть), то можно обойтись sql-запросом к базе данных (пример — http://realty[dot]sarbc[dot]ru )
Мне нужно именно через поисковую строку, фильтр уже организован (Добавление)
LIME пишет:
например http://habrahabr.ru/post/132118/
Интересно, но это же модуль к апачу или что то такое?
Это мне не подходит, хотелось бы написать ядро самому.
Какие принципы использовать для этого надо?
LIME
Отправлено: 24 Июня, 2014 - 09:59:22
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
TroL пишет:
но это же модуль к апачу или что то такое
Zuldek пишет:
применение Sphinxa (которого вам порекомендовал Lime) и аналогов будет целесообразным
это поисковый сервер
умеющий взаимодействовать с разными источниками данных среди которых и Mysql
есть другие
этот наверное наиболее описан в статьях
TroL пишет:
Это мне не подходит, хотелось бы написать ядро самому.
Покинул форум
Сообщений всего: 73
Дата рег-ции: Нояб. 2012
Помог: 0 раз(а)
LIME пишет:
TroL пишет:
Это мне не подходит, хотелось бы написать ядро самому.
а...нюню
в добрый путь
У менянет возможности устанавливать такие сервера, для этого требуется же доступ к файловой системе (Добавление)
Вот есть стандартная задумка
разбить строку на массивы
найти например элемент города, путем перебора и регулярки ( с регулярками у меня проблемы)
Найти так же числительные которые будут искать номер дома, количество комнат или даже площадь
и в таком духе
LIME
Отправлено: 24 Июня, 2014 - 10:20:36
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
даже не знаю бывают ли на хостингах такие вещи но ты хоть узнай сначала (Добавление)
TroL пишет:
и в таком духе
а так же все склонения, спряжения, однокоренные слова и в таком духе (Добавление)
а да...синонимы еще))
TroL
Отправлено: 24 Июня, 2014 - 10:23:23
Гость
Покинул форум
Сообщений всего: 73
Дата рег-ции: Нояб. 2012
Помог: 0 раз(а)
LIME пишет:
даже не знаю бывают ли на хостингах такие вещи но ты хоть узнай сначала (Добавление)
НУ если других возможностей не найдет покараю туда, или откажемся от такого поиска
TroL пишет:
и в таком духе
а так же все склонения, спряжения, однокоренные слова и в таком духе
Но можно же искать и по корню (Добавление)
А как сделать поиск слова из массива с возможностью ошибки в слове
например поровнять слова квАртира и квОртира и квартирИа.
Zuldek
Отправлено: 24 Июня, 2014 - 10:50:48
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Что вы привязались именно к сфинксу то?
Есть и php-реализации поисковых движков.
Zend_Lucene возьмите. Это php-реализация проекта Apache Lucene project. Вероятно получится обойти ограничения хостинга связанные с установкой Sphinx и ему подобных демонов на сервер хостера.
Изучите как работает и пишите свой велосипед если так хочется.
TroL пишет:
Но можно же искать и по корню
(Добавление)
А как сделать поиск слова из массива с возможностью ошибки в слове
например поровнять слова квАртира и квОртира и квартирИа.
Возможно в процессе изучения кода поймете, почему ваши поиски по массивам и т.п. верхушка айсберга подобных систем.
Хоть и конкретно для вашей задачи мне совершенно непонятна необходимость городить огород если поиск по фильтрам уже реализован.
Покинул форум
Сообщений всего: 73
Дата рег-ции: Нояб. 2012
Помог: 0 раз(а)
Zuldek пишет:
Что вы привязались именно к сфинксу то?
Есть и php-реализации пс.
Zend_Lucene возьмите. Это php-реализация проекта Apache Lucene project. Изучите как работает и пишите свой велосипед если так хочется.
Хоть и конкретно для вашей задачи мне совершенно непонятна необходимость городить огород если поиск по фильтрам уже реализован.
Потому что фильтр находится внутри определенной категории. А с главной страницы или тестовой неплохо бы тоже как то искать, потому что это фильтр будет еще и по новостям и по текстовым страницам
А вообще я исполнитель проекта, так что не мне это надо.
Zuldek
Отправлено: 24 Июня, 2014 - 11:00:30
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
TroL пишет:
Потому что фильтр находится внутри определенной категории. А с главной страницы или тестовой неплохо бы тоже как то искать, потому что это фильтр будет еще и по новостям и по текстовым страницам
А вообще я исполнитель проекта, так что не мне это надо.
С этого и надо было начинать.
На самом деле, поиск по новостям или статьям в корне отличается от поиска по объектам недвижимости и к примеру, поиска автомобилей.
Вы привели пример конкретный по недвижимости, вам конкретно обосновали почему для данного типа контента использование полнотекстового поиска нецелесообразно.
Реализация же универсального поискового движка у вас будет очень увлекательным занятияем, потому что будете писать маленьки яндекс.
Через недели мытарств вы прийдете к тому, что ваша система не сможет формировать нормальные индексы на основе БД и вам придётся либо скармливать ей веб-страницы целиком (некоторые вполне способны их кушать, а не способны, так можно отдать контент и из базы), либо формировать отдельные запросы к бд для каждого типа контента (объявления, статьи, новости) чтобы сформировать нормальные индексы (почему, надеюсь, понятно).
На последнем варианте реализации вы, скорее всего и остановитесь, на базе Zend_Search_Lucene или Sphinx
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Понимаете, пс не ищет так, как вы предполагаете.
Я дал вам пример популярного поискового движка написанного на Php почитайте как он устроен, как формирует поисковый индекс, как выглядит поисковый индекс и проч. Пока же вы пытаетесь построить деревянный небоскрёб и просите чтобы вам с этим помогли.
Покинул форум
Сообщений всего: 73
Дата рег-ции: Нояб. 2012
Помог: 0 раз(а)
Zuldek пишет:
Понимаете, пс не ищет так, как вы предполагаете.
Я дал вам пример популярного поискового движка написанного на Php почитайте как он устроен, как формирует поисковый индекс, как выглядит поисковый индекс и проч. Пока же вы пытаетесь построить деревянный небоскрёб и просите чтобы вам с этим помогли.
Деревянный небоскреб тоже не плохо. А статьи я обязательно на досуге почитаю. сегодня ищу кустарные способы
LIME
Отправлено: 24 Июня, 2014 - 11:51:08
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.