Я искал решения для поиска, такие как Sphinx, Solr и Elasticsearch, но все они слишком сложны для того, что мне нужно.
Я в основном ищу серверное программное обеспечение, наиболее распространенное, которое позволяет мне просто вставлять фрагменты текста, связанные с одним небольшим идентификатором каждый. Затем быстро найдите ключевые слова и верните идентификаторы, данные для фрагментов, которые дали совпадение с одним или несколькими ключевыми словами.
Есть ли что-то подобное?
Вы можете попробовать возможности полнотекстового поиска Mysql или MongoDB.
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo
К сожалению, вы просто не сможете получить такой же уровень производительности с помощью полнотекстового поиска MySQL, как от специализированных поисковых решений, но возникает вопрос - вас это волнует?
сфинкс поиск даст вам более быструю индексацию, более сложные запросы, инкрементные обновления, и он будет работать с MySQL из коробки, но это по-прежнему отдельная служба, которую необходимо запускать и поддерживать. mysql будет немного медленнее, и индексирование будет медленнее с большими коллекциями, но оно встроено и не требует дополнительных служб для работы в фоновом режиме. Итак, вопрос в том, вас вообще волнует, занимает ли запрос 1 или 10 секунд?
Вот некоторые цифры из блога Sphinx, а также некоторые тесты из поисковой системы Википедии.
Postgres имеет выдающуюся готовую поддержку полнотекстового поиска.
Я использую Elasticsearch, я перешел со sphinx, и да, кривая обучения выше, но это того стоит, поскольку у него действительно гибкий способ запроса с помощью JSON.