Веб-приложения: хранение и поиск по блокам текста, отправленным пользователями

Задний план:

Я создаю поэтический сайт с пользовательским контентом. Соответствующие действия пользователя для моих вопросов заключаются в том, что пользователи могут:

  • а. Перейдите на fancysitename.com/view, чтобы увидеть все стихи на данный момент.
  • б. Перейдите на fancysitename.com/submit, чтобы отправить собственное стихотворение.
  • в. Перейдите на fancysitename.com/apoemid, чтобы просмотреть конкретное стихотворение, которое вы ранее добавили в закладки.
  • д. Перейдите на страницу fancysitename.com/search, чтобы ввести слово для поиска во всех стихотворениях.

Все стихи хранятся в виде текстовых полей в базе данных и ссылаются на идентификатор стихотворения. Таким образом, «апоэмида» на шаге c будет первичным ключом кортежа, и я просто вытащу текст после получения ключа из URL-адреса.

Вопрос:

    1. The poems exist nowhere except in a database. My webapp is literally 4 html files. Will this approach affect my search engine rankings?
    2. Есть ли более эффективный способ сделать «d», чем сделать Select * в db и вручную разобрать текст на сервере? Каждое стихотворение будет состоять не более чем из 10 строк, поэтому я полагаю, что использование полнотекстовой поисковой системы, такой как Lucerne, вероятно, будет излишним.

Предостережение

Я запускаю это на движке приложения Google, поэтому возможности настройки моей базы данных довольно ограничены. Так что, хотя мне, безусловно, было бы интересно услышать об идеальном способе сделать это, это второстепенный проект, поэтому мой бюджет ограничен :(

Спасибо!

Изменить: видимо, я не так хорошо гуглю в 7 утра. С тех пор я нашел решение для вопроса 2 здесь, пожалуйста не учитывать вопрос 2.


person Naren    schedule 11.04.2009    source источник


Ответы (3)


AppEngine в настоящее время не поддерживает полнотекстовое индексирование, у них есть SearchableModel лучше, чем ничего.

Некоторые подробности о SearchableModel можно найти здесь:

http://groups.google.com/group/google-appengine/browse_thread/thread/f64eacbd31629668/8dac5499bd58a6b7?lnk=gst&q=searchablemodel

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

http://www.codinghorror.com/blog/archives/001174.html

person Sam    schedule 14.04.2009
comment
Спасибо, ссылка на codinghorror была именно тем, что я искал. Как ни странно, я читал это раньше, но забыл где, и поиск в гугле (ирония) не помог :) - person Naren; 24.04.2009

В большинстве механизмов баз данных вы можете выполнять такой поиск. Например, в MysQL есть полнотекстовый поиск. Я не уверен, как работает механизм приложения, но вы всегда можете использовать хранимую процедуру для этого поиска.

person Srikar Doddi    schedule 11.04.2009

Место, где вы храните свои данные, не повлияет на рейтинг вашего сайта, а только на то, как вы его обслуживаете (на каких URL-адресах и т. д.). У произвольного поискового паука нет абсолютно никакого способа сказать, где вы храните свои данные, и это не должно его волновать.

Независимо от длины вашего текста, вам понадобится полнотекстовый поиск, если вы хотите искать внутри строки. Как отмечает Сэм, SearchableModel должен прекрасно с этим справляться.

person Nick Johnson    schedule 14.04.2009