luke で lucene 3.x で compress でstoreしたデータをみるパッチ
lucene 3.x(3.0.2だったり3.1devだったり) でCompressionTools.compressStringで格納したfieldのデータを
lukeでみようとしたんだけど、luke 1.0.1 では見れなかった。
Show Full Textしたあと、Show Contents AsでCompressという選択肢を追加するようにした。
lukeのサイト
http://code.google.com/p/luke/
から、
subversionをチェックアウトしたものにあてる。
documentの画面でみれたらいいなぁとおもったり、
選択肢は、Compressじゃなくて、Decompressなんじゃないかなぁとか、
そもそも自分の日本語がおかしいなぁとかいろいろあるが
とりあえず。
Index: src/org/getopt/luke/Luke.java =================================================================== --- src/org/getopt/luke/Luke.java (revision 39) +++ src/org/getopt/luke/Luke.java (working copy) @@ -31,6 +31,7 @@ import java.text.NumberFormat; import java.util.*; import java.util.Map.Entry; +import java.util.zip.DataFormatException; import java.util.zip.GZIPOutputStream; import javax.swing.JFileChooser; @@ -40,6 +41,7 @@ import org.apache.lucene.analysis.*; import org.apache.lucene.analysis.payloads.PayloadHelper; import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.document.CompressionTools; import org.apache.lucene.document.DateTools; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -2871,6 +2873,14 @@ setString(find(dialog, "unit"), "text", " bytes"); value = Util.bytesToHex(data, 0, data.length, true); len = data.length; + } else if (enc.equals("cbCompress")){ + try { + value = CompressionTools.decompressString(data); + len = value.length(); + } catch (DataFormatException e) { + warn = true; + value = Util.bytesToHex(data, 0, data.length, true); + } } else if (enc.equals("cbUtf")) { setString(find(dialog, "unit"), "text", " UTF-8 characters"); value = f.stringValue(); Index: src/xml/positions.xml =================================================================== --- src/xml/positions.xml (revision 39) +++ src/xml/positions.xml (working copy) @@ -19,6 +19,7 @@ <choice name="cbHex" text="Hex dump"/> <choice name="cbInt" text="Array of int"/> <choice name="cbFloat" text="Array of float"/> + <choice name="cbCompress" text="Compress"/> </combobox> </panel> <table colspan="3" name="pTable" halign="fill" valign="fill" weightx="1" weighty="1"> Index: src/xml/field.xml =================================================================== --- src/xml/field.xml (revision 39) +++ src/xml/field.xml (working copy) @@ -19,6 +19,7 @@ <choice name="cbNum" text="Number"/> <choice name="cbInt" text="Array of int"/> <choice name="cbFloat" text="Array of float"/> + <choice name="cbCompress" text="Compress"/> </combobox> </panel> <textarea colspan="2" font="courier" width="370" height="150" wrap="false" weightx="1" weighty="1" halign="fill" valign="fill" editable="false" border="true" name="fDataText"/>