Home > python | フレームワーク > google appengineではまったこと2 ~全文検索

google appengineではまったこと2 ~全文検索

google appengineには全文検索がないらしい。
「googleなのに!そんな馬鹿な!自分で作るしかないのか!!」
と思ったんだけど、そんなのすでに作ってる人がいるんじゃないかと思い立ち、探してみたら・・・なんと隠し機能ですでに存在しているご様子!ドキュメント化されてないけど!
以下参考リンク
How-to: Full-text search in Google App Engine

というわけで、使い方としてはdb.Modelの代わりにsearch.SearchableModelを使って、検索対象はStringPropertyあるいはTextPropertyにしといたらいいと。検索するときはArticle.all().search(“検索単語”)とすると。db.Modelから切り替えるのはすごい簡単なので、ちょこっとやってみたら確かに検索できた。・・・英語は。英単語のみならば。おそらくスペース区切りでインデックス化してる。前方・部分文字列での検索は不可(リンク先には語幹でも無理と書いてある)。そういうわけで当然、日本語も不可、無理だった。いや、がんばればできるのかもしれないけど。フレーズ検索はできないらしいけど、普通にand検索くらいはできるっぽい。
例えばレコードに
“hoge foo bar”
って入ってるとき。


from google.appengine.ext import db
from google.appengine.ext import search

class Hoge(search.SearchableModel):
   content = db.TextProperty()

def Main(webapp.RequestHandler):
   def get(self):
      hoges_query = Hoge.all().search("hoge bar")
      hoges = hoges_query.fetch(10)

ってやればちゃんと”hoge foo bar”を検索してきてくれる。そういうわけでまあ、使える場面もあるんじゃないでしょうか。
でも日本語で使うためにはやっぱ自分で作るしかないのか・・・!!

追記:
と思ったら作ってる人いた。
http://d.hatena.ne.jp/matsuza/20080419/1208625514
でも形態素か~、Yahooか~。N-gramどっかにないかな。

以上

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=241
Listed below are links to weblogs that reference
google appengineではまったこと2 ~全文検索 from コスミー報告書[社外秘]
trackback from 研究開発 08-07-10 (木) 14:10

Suffix Arrayを用いた一致領域取得スクリプト

javascriptだけで動きます。
以前作ったやつをもう一回見直しました。

diffコマンドみたいに、行レベルで差分を調べるわけではありません。
文字レベルで一致をみます 順序前…

Home > python | フレームワーク > google appengineではまったこと2 ~全文検索

Search
Feeds
Meta
 合計:000304
 今日:0022 昨日:0113

Return to page top