article id #231
categorized under On the Web & written by Steven Yoo
categorized under On the Web & written by Steven Yoo
근래에 구글 앱 엔진(이하 GAE)에서 프로토타입을 작성할 일이 있어서 GAE의 데이터베이스의 Big Table에서 Full Text Search를 좀 살펴보았다.
매우 제한적이지만 GAE에서도 Full Text Search를 사용할 수 있다. 정확한 단어 매치만 되고, 부분 문자열 검색이나 정규식은 것은 적용되지 않는다.
Full text search를 하는 방법은 아래와 같다.
DB를 정의할 때 db.model 대신에 아래와 같이 search.SearchableModel을 넣어준다.
class Article(search.SearchableModel):
text = db.TextProperty()
...
article = Article(text=...)
article.save()
실제 검색하는 예제는 아래와 같다.
query = article.all().search('a search query').filter(...).order(...)
for result in query:
...
search 만 하려면 full text index가 필요하지 않는데, filter 나 order 까지 하려면 __searchable._text_index라는 인덱스를 index.yaml 에 정의해주어야 한다.
- kind: Article
properties:
- name: __searchable_text_index
- name: date
direction: desc
...
참조: http://www.google.com/codesearch/p?hl=en&sa=N&cd=1&ct=rc#Qx8E-7HUBTk/trunk/google/appengine/ext/search/__init__.py&q=searchablemodel%20package:http://googleappengine%5C.googlecode%5C.com
'On the Web' 카테고리의 다른 글
생활 영어를 그림으로 배워보자 (0) | 2010.01.28 |
---|---|
구글 앱 엔진에서의 Full Text Search (2) | 2010.01.09 |
애자일이란? 호주의 소프트웨어 회사가 동영상으로 정의했네요 (0) | 2009.06.24 |
스프린트 백로그 사용 후기 (3) | 2008.12.09 |
저도 GAE를 조금 들여다보다 아직은 떄가 이른 것 같아 포기했었는데요, 어떤 프로젝트를 하시는지 궁금하네요 ^^
ESL student를 위한 프로그램을 만들고 있습니다. 데이터를 중심으로 한 접근 방법을 사용하고 있는데요, GAE 가 무료이고 이미 몇 번 프로그램을 올려본 경험이 있어서 GAE에서 작업하고 있습니다. 전 오히려 LAMP가 익숙한데, GAE에서 이것저것 하려면 GAE만의 문제에 계속 부딪치게 되네요. ^^
lifidea님께서는 IR 쪽에 리서치를 하고 계시니 GAE에 적응하시는데 별 어려움이 없으실거라 생각합니다. 주말에 한 번 간단한 홈페이지 올려보세요. Google은 manual을 작성을 잘해두어서 코드만 보고 따라하면 금방 되더라구요. ^^
lifidea님께서는 IR 쪽에 리서치를 하고 계시니 GAE에 적응하시는데 별 어려움이 없으실거라 생각합니다. 주말에 한 번 간단한 홈페이지 올려보세요. Google은 manual을 작성을 잘해두어서 코드만 보고 따라하면 금방 되더라구요. ^^