Есть такая задача: необходима программа, которая работала бы как поисковик на локальном компьютере (типа Яндекс desktop, dtSearch, DVYGUN), но также в которой можно было бы создавать кросс-индекс.

Что такое кросс-индекс и как это должно выглядеть. Например: Есть человек по фамилии Пупкин, он был на встрече, на которой был также человек по фамилии Тряпкин, потом есть фото где Пупкин вместе с Клюшкиным. Таким образом в программе нужно как-то указать (пусть даже вручную), чтобы про поиске Пупкина она показывала, что в данном файле есть также и Тряпкин и что на данном фото есть также Клюшкин (или просто выводить эти имена где-нибудь списком рядом с поиском). Я конечно понимаю, что если в фале встречается Пупкин и Тряпкин и если фото назвать "Пупкин вместе с Плюшкиным на даче у тёщи" то при поиске на любую из этих фамилий вылезет файл, где эта фамилия встречается. Но предполагается что пользователь, выполняющий поиск, не знает о существовании Тряпкина или Плюшкина и при поиске на Пупкин просто не увидит там этой связи. Т.е. необходимо помещать в базу файлы таким образом, чтобы были видны эти связи даже если для каждого файла пришлось бы отдельно указывать какие слова использовать для кросс-индекса.

Если у кого-то есть идеи как можно такое устроить без того чтобы программить самостоятельно - буду очень признателен.