Descargar
Desarrollar
Cuenta
Descargar
Desarrollar
Entrar
Forgot Account/Password
Crear Cuenta
Idioma
Ayuda
Idioma
Ayuda
×
Entrar
Nombre de usuario
Contraseña
×
Forgot Account/Password
Translation Status of Español
Categoría:
Software
Gente
PersonalForge
Magazine
Wiki
Buscar
OSDN
>
Buscar Software
>
Internet
>
WWW/HTTP
>
Indexing/Search
>
Ludia
>
Ticket List/Search
>
Incidencia #11297
Ludia
Descripción
Project Summary
Developer Dashboard
Página Web
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
Historial
Descargas
List of Releases
Stats
Incidencia
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Wiki
FrontPage
Title index
Recent changes
Doc Mgr
List Docs
Communication
Foros
List of Forums
Ayuda (2)
Open Discussion (1)
Mailing Lists
list of ML
ludia-users
Noticias
Incidencia #11297
Ticket List
Submit New Ticket
RSS
形態素INDEX作成でエラー
Abrir Fecha:
2007-11-08 18:40
Última actualización:
2007-11-12 12:22
monitor
ON
OFF
Informador:
ssn
Propietario:
(Ninguno)
Tipo:
Bugs
Estado:
Open
Componente:
(Ninguno)
Hito:
(Ninguno)
Prioridad:
5 - Medium
Gravedad:
5 - Medium
Resolución:
Ninguno
Fichero:
Ninguno
Details
Responder
■環境
Redhat Enterprise Linux 4 U5
ludia 1.3.1 (mecab-0.96 ipadic-2.7.0 senna-1.0.9)
postgresql 8.2.4
■設定
postgres.conf
・ludia.max_n_sort_result = 100000
・ludia.enable_seqscan = on
・ludia_sen_index_flags = 31
・ludia.max_n_index_cache = 16
・ludia.initial_n_segments = 2048
■DB
・table : id int4(キー),data text
■データ
id=1 : data=("_"を30文字)
id=2 : data=("_"を55万文字)
※テスト用のサンプルデータでは無く、メール経由のデータ
を保存している為、
こういったデータ(スパムなどにより)になってしまう物があ
ります。
■現象
形態素INDEXを作成時にエラーが発生します
ERROR: pgsenna2: sen_index_update failed 1,0
・DB上で逆の並び方の場合は作成出来る。
(select * from tableで1,2では作成失敗、2,1では作成出来
る。)
・id 1,2共に単体だとINDEX作成出来る
・fulltextbは問題無く作成出来る
・他の文字("a"の連続)では上記の55万文字を超えるデータで
も作成出来る。
mecabにて単体実行してみると"_"は一形態素として扱われて
いるので
INDEX作成時の形態素数の限界を超えてしまっているのかなと
予想しています。
以上です、
よろしくお願いします。
Ticket History (3/4 Histories)
Show older Histories
2007-11-12 09:36
Updated by:
co-saka
Comentario
Responder
Logged In: YES
user_id=23292
以下のログが出ていると思います。
LOG: pgsenna2: |C| buffer(262160) is full (262112 <
499984) in sen_inv_update
ERROR: pgsenna2: sen_index_update failed 1,0
ssnさんがおっしゃる通り、形態素の大きいさの限界を超えている
ようです。これは現在の仕様です。sennaのソースには、そのあた
りにtodoと書かれているので、いつか変わる可能性があります。
=# CREATE INDEX idx ON tab USING fulltext(substring(col,
1, 10000));
=# SELECT * FROM tab WHERE substring(col, 1, 10000) @@ '検
索';
上記のように、メールの前半10000文字だけをインデックス対象に
してはいかがでしょうか?スパムを全て検索対象にするのはナン
センスだと思います。10000文字もあれば、普通のメール本文は全
て含まれるので、問題はないと思います。
2007-11-12 10:21
Updated by:
ssn
Comentario
Responder
Logged In: YES
user_id=31583
当初、こちらでも全ての文章に対してINDEXを張る必要があるのか
という意見があり、substringで切る方式を検討しましたが、
実行確認した所、
加工を施した(substringなどで)INDEXは"@@"検索時に使用されませ
んでした。
何らかの対処方法があればよろしくお願いします。
2007-11-12 11:28
Updated by:
co-saka
Comentario
Responder
Logged In: YES
user_id=23292
=# CREATE INDEX idx ON tab USING fulltext(substring(col,
1, 10000));
=# SELECT * FROM tab WHERE substring(col, 1, 10000) @@ '検
索';
このクエリを実施してみてください。
インデックスが使用されます。
2007-11-12 12:22
Updated by:
ssn
Comentario
Responder
Logged In: YES
user_id=31583
回答ありがとうございます。
切ったINDEXには切ったWHERE句をという
基本的な事を忘れていました。
対処方法の確認OKでした。
Attachment File List (
0
)
Attachment File List
No attachments
Editar
Add Comment
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Entrar
Add Comment
Vista previa
Submit
Redhat Enterprise Linux 4 U5
ludia 1.3.1 (mecab-0.96 ipadic-2.7.0 senna-1.0.9)
postgresql 8.2.4
■設定
postgres.conf
・ludia.max_n_sort_result = 100000
・ludia.enable_seqscan = on
・ludia_sen_index_flags = 31
・ludia.max_n_index_cache = 16
・ludia.initial_n_segments = 2048
■DB
・table : id int4(キー),data text
■データ
id=1 : data=("_"を30文字)
id=2 : data=("_"を55万文字)
※テスト用のサンプルデータでは無く、メール経由のデータ
を保存している為、
こういったデータ(スパムなどにより)になってしまう物があ
ります。
■現象
形態素INDEXを作成時にエラーが発生します
ERROR: pgsenna2: sen_index_update failed 1,0
・DB上で逆の並び方の場合は作成出来る。
(select * from tableで1,2では作成失敗、2,1では作成出来
る。)
・id 1,2共に単体だとINDEX作成出来る
・fulltextbは問題無く作成出来る
・他の文字("a"の連続)では上記の55万文字を超えるデータで
も作成出来る。
mecabにて単体実行してみると"_"は一形態素として扱われて
いるので
INDEX作成時の形態素数の限界を超えてしまっているのかなと
予想しています。
以上です、
よろしくお願いします。