from whoosh.index import create_in from whoosh.fields import * #スキーマの作成(フィールドはtitleとpathとcontentの3つ) #stored=Trueのものはインデックスにオリジナルデータを持たせ、検索時に結果として返す。 #stored=False(デフォルトはFalse)のものはindex化されるので全文検索は可能だがオリジナルデータは検索時にはわからなくなっている。 schema = Schema(title=TEXT(stored=True), path=ID(stored=True), content=TEXT) #作成したスキーマのインデックスディレクトリ(indexdir)を作成 ix = create_in("indexdir", schema) #indexwriterを作成 writer = ix.writer() #ドキュメントをインデックスに追加 writer.add_document(title=u"First document", path=u"/a", content=u"This is the first document we've added!") writer.add_document(title=u"Second document", path=u"/b", content=u"The second one is even more interesting!") #コミットの実行 indexファイルへの書き込み writer.commit() from whoosh.qparser import QueryParser #indexsearcherを作成 searcher = ix.searcher() #検索クエリの作成(contentにfirstを含むドキュメント) query = QueryParser("content",schema = ix.schema).parse(u"first") #検索の実行 results = searcher.search(query) print results[0]
実行結果
Hit {'path': u'/a', 'title': u'First document'}
とりあえず使い始めは簡単。
0 件のコメント:
コメントを投稿