2011年2月12日土曜日

Whoosh Fields

Whooshのフィールドの種類の種類は以下。
やっぱりフィールドの種類はluceneに比べるとすごく少ない。
普通の日本語のフィールドだとngram一択かな。


whoosh.fields.ID
シンプルな単一フィールド。
urlやファイルパス、カテゴリなどで使うと良いとのこと。
luceneやsolr経験者だとユニークキーのことかと思うかもしれないが、
この値が同じだと同じドキュメントになるわけではないので注意。
(同一のidのものを追加しても前のドキュメントは上書かれない)


whoosh.fields.STORED
ストアするがインデックス化はしないフィールド。
検索には引っかからないようにしたいデータを入れる。


whoosh.fields.KEYWORD
スペースやカンマで区切られている文字列をindex化するフィールド。
one two,threefourというデータであればone,two,threefourという3つのデータがインデックス化される。
フレーズ検索(続いた文字列群で検索)には対応していない。


whoosh.fields.TEXT
タームポジション(文字列出現箇所)を記憶しているフィールド。
フレーズ検索に対応。


whoosh.fields.NUMERIC
数値フィールド。
intおよびfloatの値に対応。


whoosh.fields.BOOLEAN
booleanフィールド。
TrueかFalseのみ。


whoosh.fields.DATETIME
日時フィールド。


whoosh.fields.NGRAM and whoosh.fields.NGRAMWORDS
ngramフィールドとngramwordフィールド。
ngramフィールドは文字列をn文字で分割してindex化。
2gramだと[test] -> [te] [es] [st]の3つのデータに分割される。

ngramwordフィールドはキーワードをn単位で分割してindex化。
2gramだと[one two three] -> [one two][two three]の2つのデータに分割される。

0 件のコメント:

コメントを投稿