2013-02-26 2 views
0

Из-за ограничений экспериментального API поиска я решил использовать Apache Lucene для поиска в полнотекстовом поиске. Я просмотрел порты AppEngine Lucene, но они не соответствуют моим потребностям (одни используют RAMIndex, не будут поддерживать размер моего индекса, а те, которые используют хранилище данных, слишком медленны по производительности), поэтому я протестировал Lucene, используя мой и обнаружил, что он отлично работает для меня.Развертывание и чтение статических файлов на GAE

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

Проблема, с которой я столкнулся, - это квоты статического файла AppEngine (https://developers.google.com/appengine/docs/java/runtime внизу страницы). Мой индекс составляет всего около 750 МБ, поэтому я отлично разбираюсь в «итоговых файлах < 1GB», однако некоторые из моих индексных файлов составляют несколько сотен мегабайт, и поэтому не будут допущены в AppEngine из-за 32 МБ на каждый файл.

Есть ли способ развернуть и прочитать статические файлы размером более 32 МБ на AppEngine? Или я застрял, чтобы настроить другой сервер (например, Amazon) только для чтения моего индекса Lucene?

ответ

1

С 750 МБ файлом вы должны использовать BlobStore или Google Cloud Storage.

Если вы можете изменить код доступа к статическому файлу в Lucene, вы можете использовать запрос для BlobStore или Cloud Storage для чтения файла. Но если статический файл является только опцией, вы должны разделить индекс на 32 Мб штук.

Если вы изменили код доступа к файлу Lucene, у вас есть ограничение на 32 МБ для каждого запроса на чтение. Таким образом, файл должен быть прочитан фрагментами.

+0

Blobstore и Google Cloud Storage не являются вариантом (без написания массивной библиотеки для интеграции с Lucene с ними). Похоже, что также невозможно разбить мои индексы меньше 32 МБ. К сожалению, похоже, что этот метод не работает, и мне нужно найти другое место для размещения этой части моего приложения. –