Может кто сталкивался: в памяти есть текстовые данные, надо организовать full-text search по ним.
Есть ли какие-нибудь готовые open-source решения / алгоритмы / подходы ?
У меня немного другая задача, ежели нечеткий поиск.
Мне надо найти "документы", в которых встречаются заданные ключевые слова. В идеале — еще и отсортировать по релевантности.
Здравствуйте, Vlass, Вы писали:
V>Попробуй MS Indexing Service, вещь достаточно простая и рабочая (пробовал в трех разных проектах) если что не поймешь спрашивай
Дело в том, что:
1. У меня все данные хранятся в памяти.
2. Мне нужен функционал поиска на клиентских машинах (куда будет разворачиваться моя программа).
База сравнительно небольшая, поэтому я думаю реализовать индексирование текстовых данных руками. Просто подумал, может кто-то знает / видел / делал что-то подобное.
Я думаю для каждого слова сделать список всех документов, в котором оно встречается. Потом делать объединение / пересечение списков, если поиск ведется по нескольким словам. Там же можно и релевантность определять (подсчитывать вес каждого документа).
Здравствуйте, HaPK, Вы писали:
HPK>Я думаю для каждого слова сделать список всех документов, в котором оно встречается. Потом делать объединение / пересечение списков, если поиск ведется по нескольким словам. Там же можно и релевантность определять (подсчитывать вес каждого документа).
Правильной дорогой идете, товарищи Посмотрите здесь
Еще в гугле можно поискать по запросу "инвертированные файлы".
HPK>База сравнительно небольшая, поэтому я думаю реализовать индексирование текстовых данных руками. Просто подумал, может кто-то знает / видел / делал что-то подобное.
Делать-то делал, только все равно алгоритмы придется "затачивать" под конкретные задачи. Универсальный вариант — инвертированные файлы. Если база небольшая — проблем быть не должно.
Если появятся какие-то вопросы — пишите лучше на e-mail. Я этим вопросом занимался одно время достаточноо плотно, кое-какие наработки есть.
Здравствуйте, HaPK, Вы писали:
HPK>Может кто сталкивался: в памяти есть текстовые данные, надо организовать full-text search по ним. HPK>Есть ли какие-нибудь готовые open-source решения / алгоритмы / подходы ?
Здравствуйте, AlexZu, Вы писали:
AZ>Здравствуйте, HaPK, Вы писали:
HPK>>Может кто сталкивался: в памяти есть текстовые данные, надо организовать full-text search по ним. HPK>>Есть ли какие-нибудь готовые open-source решения / алгоритмы / подходы ?
AZ>Возможно то, что вам нужно: AZ>http://www.lucenedotnet.com (порт http://jakarta.apache.org/lucene)
Очень аппетитная вещь, но одна проблема — платная...