<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>ryo.com &#187; ludia</title>
	<atom:link href="http://www.ryo.com/tag/ludia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ryo.com</link>
	<description>by Ryosuke Hosoi</description>
	<lastBuildDate>Sat, 19 Feb 2011 14:20:06 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.ryo.com/tag/ludia/feed/" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><cloud domain='www.ryo.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>ludia.max_n_sort_resultを使うときの注意</title>
		<link>http://www.ryo.com/2008/10/16/613/</link>
		<comments>http://www.ryo.com/2008/10/16/613/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 14:51:52 +0000</pubDate>
		<dc:creator>りょすけ</dc:creator>
				<category><![CDATA[IT関連]]></category>
		<category><![CDATA[ludia]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.ryo.com/?p=613</guid>
		<description><![CDATA[関口さんのブログで紹介されてる通り、ludia.max_n_sort_resultパラメータを適切に設定してやることによりludiaのパフォーマンスは大幅に向上します。 が、このパラメーターをSETコマンドで変更しようと [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lucene.jugem.jp/?eid=205">関口さんのブログで紹介されてる通り</a>、ludia.max_n_sort_resultパラメータを適切に設定してやることによりludiaのパフォーマンスは大幅に向上します。</p>
<p>が、このパラメーターをSETコマンドで変更しようとすると<br />
<code>ryo=# SET ludia.max_n_sort_result TO 1000;<br />
ERROR:  unrecognized configuration parameter "ludia.max_n_sort_result"</code><br />
と怒られてしまうことがあります。</p>
<p>これはどうやら、postgresql.confに<a href="http://ludia.sourceforge.jp/cgi-bin/moin.cgi/LudiaReadme#id11">デフォルト設定</a>の<br />
<code>custom_variable_classes = 'ludia'<br />
ludia.max_n_sort_result = 10000<br />
ludia.enable_seqscan = on<br />
ludia.seqscan_flags = 1<br />
ludia.sen_index_flags = 31<br />
ludia.max_n_index_cache = 16<br />
ludia.initial_n_segments = 512</code><br />
をちゃんと書いておかないと、このエラーになってしまう模様です。</p>
<p>このデフォルトのパラメーターを書かなくてもインデックス作成も検索動くので、ちょっと嵌るかもしれません。</p>
<h3  class="related_post_title">関連記事</h3><ul class="related_post"><li><a href="http://www.ryo.com/2008/03/26/457/" title="PostgreSQLで特定のテーブルのみautovacuumの対象外にする">PostgreSQLで特定のテーブルのみautovacuumの対象外にする</a></li><li><a href="http://www.ryo.com/2007/10/19/354/" title="Ludiaメモ">Ludiaメモ</a></li><li><a href="http://www.ryo.com/2008/01/19/363/" title="PostgreSQL使ったWebサイトのDBでありがちなこと">PostgreSQL使ったWebサイトのDBでありがちなこと</a></li><li><a href="http://www.ryo.com/2005/10/17/114/" title="[勝手にCLI Magic]readlineと暮らす">[勝手にCLI Magic]readlineと暮らす</a></li><li><a href="http://www.ryo.com/2008/07/21/543/" title="OSC関西2008楽しかった">OSC関西2008楽しかった</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.ryo.com/2008/10/16/613/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.ryo.com/2008/10/16/613/" />
	</item>
		<item>
		<title>PostgreSQLで特定のテーブルのみautovacuumの対象外にする</title>
		<link>http://www.ryo.com/2008/03/26/457/</link>
		<comments>http://www.ryo.com/2008/03/26/457/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 09:15:02 +0000</pubDate>
		<dc:creator>りょすけ</dc:creator>
				<category><![CDATA[IT関連]]></category>
		<category><![CDATA[autovacuum]]></category>
		<category><![CDATA[ludia]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.ryo.com/2008/03/26/457/</guid>
		<description><![CDATA[photo credit: isriya PostgreSQLの8.3に対応のLudiaの1.5がリリースされたのですが、8.3で利用するとvacuum非対応になり、vacuum後はREINDEXが必要になっていましまし [...]]]></description>
			<content:encoded><![CDATA[<p style="float: right; margin-left: 1em"><a href="http://www.flickr.com/photos/isriya/2288735297/"><img src="http://farm3.static.flickr.com/2122/2288735297_62b9c0c60e_m.jpg" alt="PostgreSQL" border="0" /></a><br />
<small><a href="http://www.photodropper.com/creative-commons/" title="creative commons"><img src="http://www.ryo.com/wp-content/plugins/photo_dropper/images/cc.png" alt="Creative Commons License" align="middle" border="0" height="16" width="16" /></a> <a href="http://www.photodropper.com/photos/">photo</a> credit: <a href="http://www.flickr.com/people/isriya/" title="isriya">isriya</a></small></p>
<p>PostgreSQLの8.3に対応の<a href="http://sourceforge.jp/projects/ludia/">Ludia</a>の1.5がリリースされたのですが、8.3で利用するとvacuum非対応になり、vacuum後はREINDEXが必要になっていましました。<br />
これは8.3でのHOTがらみの変更で、以前と同じ仕組みだと対応できないということなのでとりあえずは仕方ないのですが、運用上はなんとか対応する必要があります。</p>
<p>ひとつはautovacuumをoffにして運用する方法です。</p>
<p>もうひとつは、Ludiaのインデックスを使用しているテーブルだけautovacuumの対象外にして運用する方法です。</p>
<p>どちらにしても、Ludiaのインデックスはvacuum実行後にreindexを行う必要がありますが、Ludiaのインデックスを使用しているのは一部のテーブルのみという場合、そこだけautovacuumの対象外にして、（たとえ、それがスクリプトの仕事だとしても）定期メンテナンスを行うのが楽です。</p>
<p>特定のテーブルをautovacuumの対象外にするには、以下のようにシステムカタログpg_autovacuumにレコードを作成します。</p>
<p>まず、テーブルのpg_class.oidを調べます。<br />
<code>ryo=# select oid,relname from pg_class where relname = 'groups';<br />
oid  | relname<br />
-------+---------<br />
19123 | groups<br />
(1 row)</code></p>
<p>pg_autovacuum.enabled=falseとしてレコードを作成します。<br />
<code>ryo=# insert into pg_autovacuum values (19123, false, -1, -1, -1, -1,<br />
-1, -1, -1, -1);<br />
INSERT 0 1<br />
Time: 88.973 ms</code></p>
<p>autovacuumとpg_autovacuumについてはドキュメントの<br />
<a href="http://www.postgresql.jp/document/pg830doc/html/routine-vacuuming.html#AUTOVACUUM">23.1. 定常的なバキューム作業 &#8211; 23.1.4. 自動バキュームデーモン</a><br />
<a href="http://www.postgresql.jp/document/pg830doc/html/catalog-pg-autovacuum.html">44.10. pg_autovacuum</a><br />
を参考にどうぞ。</p>
<h3  class="related_post_title">関連記事</h3><ul class="related_post"><li><a href="http://www.ryo.com/2008/10/16/613/" title="ludia.max_n_sort_resultを使うときの注意">ludia.max_n_sort_resultを使うときの注意</a></li><li><a href="http://www.ryo.com/2007/10/19/354/" title="Ludiaメモ">Ludiaメモ</a></li><li><a href="http://www.ryo.com/2008/01/19/363/" title="PostgreSQL使ったWebサイトのDBでありがちなこと">PostgreSQL使ったWebサイトのDBでありがちなこと</a></li><li><a href="http://www.ryo.com/2005/10/17/114/" title="[勝手にCLI Magic]readlineと暮らす">[勝手にCLI Magic]readlineと暮らす</a></li><li><a href="http://www.ryo.com/2008/07/21/543/" title="OSC関西2008楽しかった">OSC関西2008楽しかった</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.ryo.com/2008/03/26/457/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.ryo.com/2008/03/26/457/" />
	</item>
		<item>
		<title>Ludiaメモ</title>
		<link>http://www.ryo.com/2007/10/19/354/</link>
		<comments>http://www.ryo.com/2007/10/19/354/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 15:04:56 +0000</pubDate>
		<dc:creator>りょすけ</dc:creator>
				<category><![CDATA[IT関連]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ludia]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.ryo.com/ryo/?p=354</guid>
		<description><![CDATA[みんな大好きPostgreSQLにSennaを組み込むLudiaのREADME見ながらひととおりやったときのメモ インデックスアクセスメソッドの登録 RPM版のpostgresqlにインストールしたときには、Ludiaの [...]]]></description>
			<content:encoded><![CDATA[<p>みんな大好きPostgreSQLにSennaを組み込む<a href="http://ludia.sourceforge.jp/cgi-bin/moin.cgi/LudiaReadme">LudiaのREADME</a>見ながらひととおりやったときのメモ<br />
<span id="more-354"></span><br />
<strong>インデックスアクセスメソッドの登録</strong><br />
RPM版のpostgresqlにインストールしたときには、Ludiaの登録に使用するファイルは<br />
/usr/share/pgsql/pgsenna2.sql<br />
になる<br />
インストールはpsql内から<br />
<code>mydb=# \i /usr/share/pgsql/pgsenna2.sql</code><br />
でOK</p>
<p><strong>分かち書きより2-gramがいいかも</strong><br />
たとえば<br />
-まだまだ<br />
-まだまだまだ<br />
-まだまだまだまだ<br />
を、「まだ」で検索すると、分かち書きだと２つめしかヒットしない</p>
<p><strong>スコアの取得</strong><br />
pgs2getscore(TABLE.ctid, &#8216;indexname&#8217;)<br />
だが、ここでctidはレコードの物理位置TIDを表すもので、全てのテーブルで同じ書き方で良い<br />
何故かスコアが全て0になるときは、下記REINDEXを行う必要があると思われ</p>
<p><strong>REINDEX<strike>が必要</strike>は不要</strong><br />
sennaインデックス内ではレコードのTIDを保持している<br />
<strike>TIDはVACUUM FULLやCLUSTERで変更されるため、そういう時はREINDEXが必要<br />
ちなみにautovacuumはfull vacuumを行わないので大丈夫なハズ</strike><br />
最近のLudiaはVACUUM FULLやCLUSTERに対応しており、特にREINDEXを必要としない</p>
<h3  class="related_post_title">関連記事</h3><ul class="related_post"><li><a href="http://www.ryo.com/2008/10/16/613/" title="ludia.max_n_sort_resultを使うときの注意">ludia.max_n_sort_resultを使うときの注意</a></li><li><a href="http://www.ryo.com/2008/03/26/457/" title="PostgreSQLで特定のテーブルのみautovacuumの対象外にする">PostgreSQLで特定のテーブルのみautovacuumの対象外にする</a></li><li><a href="http://www.ryo.com/2005/10/17/114/" title="[勝手にCLI Magic]readlineと暮らす">[勝手にCLI Magic]readlineと暮らす</a></li><li><a href="http://www.ryo.com/2008/07/21/543/" title="OSC関西2008楽しかった">OSC関西2008楽しかった</a></li><li><a href="http://www.ryo.com/2009/08/28/983/" title="ls ~">ls ~</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.ryo.com/2007/10/19/354/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.ryo.com/2007/10/19/354/" />
	</item>
	</channel>
</rss>

