Как устранить ограничение в 10 ГБ в Google App Engine?

Мы пытаемся индексировать почтовые ящики, сидя поверх GMail, и используем API поиска App Engine, но мы достигаем предела в 10 ГБ. Это связано с тем, что мы индексируем электронные письма всей организации, чтобы мы могли выполнять поиск по почтовому ящику всей команды. Как мы можем обойти это? Один из способов может заключаться в том, чтобы иметь индивидуальный индекс для каждого человека и каким-то образом объединять результаты вручную, но опасаюсь, что объединение результатов может быть очень сложным! Интересно, какие варианты доступны?


person Debnath Sinha    schedule 08.11.2014    source источник


Ответы (2)


Это типичная проблема в любой системе поиска документов, и решение состоит в том, чтобы разбить весь корпус на несколько сегментов. Вы должны выбрать стратегию нарезки, основанную на ваших требованиях/шаблоне использования.

Одна из возможностей состоит в том, чтобы нарезать сообщения по их дате. Вы продолжаете добавлять сообщения в индекс, пока не приблизитесь к пределу, после чего вы начинаете новый индекс для более новых сообщений. Или вы можете сделать это по календарным интервалам (в год, в квартал или в месяц, в зависимости от вашего объема).

Объединение результатов нескольких индексов очень просто. Вы также можете дать пользователям возможность выбрать, как далеко назад во времени они хотят отправиться в своем поиске. Часто люди знают, что ищут что-то недавнее или что-то, что произошло давным-давно.

person Andrei Volgin    schedule 08.11.2014
comment
Не станет ли слияние очень сложным, поскольку каждый набор результатов будет иметь свои собственные критерии релевантности, а затем объединение этих результатов потребует от вас (приложения) оценить, насколько релевантен каждый результат? например. может ли быть так, что результат3 из индекса1 более релевантен, чем результат2 из индекса2 или наоборот? - person Debnath Sinha; 10.11.2014
comment
API поиска не вычисляет релевантность — он возвращает только те результаты, которые соответствуют запросу. Если вы хотите оценить релевантность предоставленной пользователем комбинации ключевых слов и/или фраз, вам необходимо объединить все результаты и проанализировать каждый из них на основе критериев, которые вы используете для расчета релевантности. Обратите внимание, что большинство почтовых клиентов вообще не используют релевантность, поэтому пользователи обычно не ожидают ранжирования документов по релевантности. Когда я ищу в своем почтовом ящике, я ожидаю, что результаты будут отсортированы по дате. - person Andrei Volgin; 10.11.2014
comment
Спасибо, это действительно помогло! - person Debnath Sinha; 10.11.2014

Отправьте запрос функции:

https://code.google.com/p/googleappengine/wiki/FilingIssues?tm=3

Это тоже было в файле, поэтому, возможно, пометьте его: https://code.google.com/p/googleappengine/issues/detail?id=10667

person user1258245    schedule 08.11.2014