Download
Desenvolver
Conta
Download
Desenvolver
Login
Forgot Account/Password
Criar Conta
Linguagem
Ajuda
Linguagem
Ajuda
×
Login
Nome de acesso
Senha
×
Forgot Account/Password
Estado tradução de Português
Category:
Software
People
PersonalForge
Magazine
Wiki
Pesquisa
OSDN
>
Pesquisar Software
>
Internet
>
WWW/HTTP
>
Indexing/Search
>
Ludia
>
Ticket List/Search
>
Tíquete #11297
Ludia
Descrição
Project Summary
Developer Dashboard
Página da Web
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
Histórico
Downloads
List of Releases
Stats
Tíquete
Ticket List
Milestone List
Type List
Lista de componentes
List of frequently used tickets/RSS
Submit New Ticket
Documents
Wiki
FrontPage
Title index
Recent changes
Doc Mgr
List Docs
Communication
Fóruns
List of Forums
Ajuda (2)
Open Discussion (1)
Mailing Lists
list of ML
ludia-users
News
Tíquete #11297
Ticket List
Submit New Ticket
RSS
形態素INDEX作成でエラー
:
2007-11-08 18:40
Última Atualização:
2007-11-12 12:22
monitor
ON
OFF
Relator:
ssn
Dono:
(Nenhum)
Tipo:
Bugs
Estado:
Aberto
Componente:
(Nenhum)
Marcos:
(Nenhum)
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Nenhum
Arquivo:
Nenhum
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
Comentário
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
Comentário
Responder
Logged In: YES
user_id=31583
当初、こちらでも全ての文章に対してINDEXを張る必要があるのか
という意見があり、substringで切る方式を検討しましたが、
実行確認した所、
加工を施した(substringなどで)INDEXは"@@"検索時に使用されませ
んでした。
何らかの対処方法があればよろしくお願いします。
2007-11-12 11:28
Updated by:
co-saka
Comentário
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
Comentário
Responder
Logged In: YES
user_id=31583
回答ありがとうございます。
切ったINDEXには切ったWHERE句をという
基本的な事を忘れていました。
対処方法の確認OKでした。
Attachment File List (
0
)
Attachment File List
No attachments
Editar
Adicionar Comentário
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
Login
Adicionar Comentário
Pré-visualizar
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作成時の形態素数の限界を超えてしまっているのかなと
予想しています。
以上です、
よろしくお願いします。