У меня есть большой документ, содержащий строку, как это, в основном, не разграничены строки - mynameisjohnsmithПоиск конкретного слова в не разграничены строки
У меня также есть коллекция имен, это может быть очень большим, предположим, миллион записей. Что я намерен сделать, чтобы проверить, содержит ли документ имя, доступное в коллекции. Один из способов сделать это - проиндексировать документ и выполнить итерацию по коллекции, а для каждого поиска поиска - индекс имени. Это может быть действительно неэффективно, если имена в коллекции отсутствуют (1 миллион итераций).
Мне интересно, есть ли лучшие способы сделать это. Что-то вроде индексации как документа, так и имен и нахождения пересечения. Спасибо.
Лучший способ продвижения с использованием solr/lucene, imo., Но посмотрите здесь: http://stackoverflow.com/questions/14633286/efficient-substring-search-in-a-large-text-file-containing-100 -millions-strings –
'Это может быть действительно неэффективно, если имена не присутствуют в коллекции' - вероятно, нет, если вы используете правильный индекс. – Thomas
Если вы хотите сделать это самостоятельно, одним из способов может быть разделение документа на слова и построение карты с ключевым словом (значением может быть информация о местоположении и т. Д.). Затем найдите имена на этой карте, которые будут близки к O (1), если карты будут установлены соответственно с точки зрения начальной емкости и т. Д. – Thomas