[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Descriptive Search
Oyeme
Пользователь вводит текст в любом порядке.
Нужно сделать так чтобы автоматически заполнялись критерии поиска по словам.

Все что мне пришло в голову так это разбить текст и каждое слово искать по своему.

Так же есть глобальные список для игнорирования таких слов как "the,in,or etc"

Языки для поиска: английский,французский,немецкий
У кого какие введения на эту тему?
Кешировать придеться все,вот с этим будет по сложнее.


Вот что я накидал.


user posted image

Может кто знает алгоритмы поиска?Каки-то идеи будет интеретсно послушать.

vital
ээ, а чем Sphinx/Lucene/Solr не подходят?

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Oyeme
Вопрос как кешировать пока не стоит,в любом случаи буду использовать sphinx и memcache для разных случаев.

Вопрос в поиске паттернов алгоритма.

Схема обновилось до уровня словоря

vital
Цитата
Нужно сделать так чтобы автоматически заполнялись критерии поиска по словам.

Я если честно не совсем понял, что тут должно сделать и в чем проблема.

Т.е нужно, в зависимости от запроса выполнить разные действия?(причем не тект найти, а именно найти действие) так?

Ну всякие там the a at и тп, сфинкс умеет вырезать сам(как и другие искалки). Там есть стоп-слова. Стемминг и прочее тоже легко включаются. Все что нужно, это на писать на каждое действие текст с нужными ключевиками да и все. Если я правильно понял.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
vital
Или нужно в зависимости от запроса, использовать разные коллекции текстов внутри сфинкса?

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Invis1ble
Таким не занимался, но если я правильно понял задачу, то можно попробовать подобную технологию http://habrahabr.ru/company/yandex/blog/219311/
Причем для английского это должно быть проще и, соответственно, ужЕ разработанного софта должно быть больше (про французский и немецкий не в курсе).

PS. Отпишись о результатах, интересует эта тема.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Oyeme
Цитата
Ну всякие там the a at и тп, сфинкс умеет вырезать сам(как и другие искалки). Там есть стоп-слова. Стемминг и прочее тоже легко включаются. Все что нужно, это на писать на каждое действие текст с нужными ключевиками да и все. Если я правильно понял.

Cпасибо , сейчас статью читаю как включить
sergeiss
Oyeme, я не совсем понял, что ты хочешь в итоге получить. Но мне так кажется, что что-нибудь типа полнотекстового поиска из PostgreSQL вполне может подойти. Там уже много чего заложено.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Oyeme
Цитата (sergeiss @ 6.02.2015 - 10:47)
Oyeme, я не совсем понял, что ты хочешь в итоге получить. Но мне так кажется, что что-нибудь типа полнотекстового поиска из PostgreSQL вполне может подойти. Там уже много чего заложено.

Мне нужно найти взаимо связующие слова в разных порядках,которые пренодлежат разным категориям и эти категории заполнять.

Каждый метод со своим алгоритмом поиска и кешированием.

sergeiss
Пример на основе постов на stackoverflow
Для сравнения http://es.slideshare.net/billkarwin/full-t...h-in-postgresql
PostgreSQL

Index Storage LIKE predicate -- none
PostgreSQL / GIN -- 532 MB
Sphinx Search -- 533 MB
Apache Lucene -- 1071 MB
Inverted index -- 101 MB

Query Speed LIKE predicate -- 90+ sec PostgreSQL / GIN -- 20 ms
Sphinx Search -- 8 ms
Apache Lucene -- 80 ms
Inverted index -- 40 ms
vital
Цитата
Мне нужно найти взаимо связующие слова в разных порядках,которые пренодлежат разным категориям и эти категории заполнять.

т.е нужно взять текст, и в зависимости от того, какие в нем ключевики, отнести текст в нужную категорию? Ну или какие-то данные из этого текста?

Ну дык, вам не полнотекстовой поиск нужен, а скорее просто поиск ключевиков, независимо от словоформы. Что-то мне подсказывает, что можно и без сфинкса, погуглить какую-нить кластеризацию текстов на основе ключевиков.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Oyeme
Цитата (vital @ 6.02.2015 - 11:15)
Цитата
Мне нужно найти взаимо связующие слова в разных порядках,которые пренодлежат разным категориям и эти категории заполнять.

т.е нужно взять текст, и в зависимости от того, какие в нем ключевики, отнести текст в нужную категорию? Ну или какие-то данные из этого текста?

Ну дык, вам не полнотекстовой поиск нужен, а скорее просто поиск ключевиков, независимо от словоформы. Что-то мне подсказывает, что можно и без сфинкса, погуглить какую-нить кластеризацию текстов на основе ключевиков.

vital
Объем данных очень огромный.
Для примера раздел departments состоит из более 50 таблиц в каждой из которых примерно по миллиону строк для поиска.Естественно все таблицы свзазанны друг с другом по определнному ключу и критерию.

Уровень поиска взаимосвязывающих слов может уходить в глубь до бесконечности.

Я не описывал сами методы и их внутренни алгоритмы.Я лишь выделил их на схеме,что это и есть логические блоки,а не сама логика.
vital
Ну огромный и огромный, ну и чо.
Возьмите яву, поставьте hadoop, и там есть очень удобные тулзы для кластеризации и машинного обучения кластеризатора(если хотите, я бы хотел smile.gif).

Пхп - не тот инструмент в таких условиях smile.gif

А полнотекстовой поиск это не то совсем, что вам нужно, хотя, возможно, и выйдет добиться нужной цели. Ну гвозди микроскопом, как обычно smile.gif

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.