RE: start a new spatial contrib
I had not time for until now, but maybe this can be combined. We had some discussion about Trie and LovcalLucene in this list, but until now, I had no time to look into the code. Uwe - Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: u...@thetaphi.de From: Mark Miller [mailto:markrmil...@gmail.com] Sent: Friday, December 19, 2008 3:00 AM To: java-dev@lucene.apache.org Subject: Re: start a new spatial contrib Who is this shady character and can he be trusted? :) +1. LocalLucene is awesome. Anyone investigated Jason's idea of integrating the trie range query stuff? - Mark Michael McCandless wrote: Ryan McKinley wrote: I asked a while back how you all feel about letting me have commit access on /contrib, I want to raise the question again just to make sure. +1 Mike - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org
Re: start a new spatial contrib
On Dec 18, 2008, at 9:00 PM, Mark Miller wrote: Who is this shady character and can he be trusted? :) +1. LocalLucene is awesome. Anyone investigated Jason's idea of integrating the trie range query stuff? There will be lots of things to investigate! The other thing i am curious about is flexible indexing -- i have not really followed what that means, but somewhere in there i got the idea we could implement an rtree directly... Also geohash -- a single field to hold lat/lon and bounding box queries are just a range search. http://en.wikipedia.org/wiki/Geohash http://mappinghacks.com/2008/05/29/geohash-implemented-in-python/ onward! - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org
Re: start a new spatial contrib
another interesting geohash link: http://labs.metacarta.com/blog/27.entry/geographic-queries-on-google-app-engine/ seems like that has a perfect match with TrieRangeQuery On Dec 19, 2008, at 5:48 PM, Ryan McKinley wrote: On Dec 18, 2008, at 9:00 PM, Mark Miller wrote: Who is this shady character and can he be trusted? :) +1. LocalLucene is awesome. Anyone investigated Jason's idea of integrating the trie range query stuff? There will be lots of things to investigate! The other thing i am curious about is flexible indexing -- i have not really followed what that means, but somewhere in there i got the idea we could implement an rtree directly... Also geohash -- a single field to hold lat/lon and bounding box queries are just a range search. http://en.wikipedia.org/wiki/Geohash http://mappinghacks.com/2008/05/29/geohash-implemented-in-python/ onward! - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org
Re: start a new spatial contrib
On Fri, Dec 19, 2008 at 05:48:51PM -0500, Ryan McKinley wrote: The other thing i am curious about is flexible indexing -- i have not really followed what that means, but somewhere in there i got the idea we could implement an rtree directly... I've been flogging the idea of an RTree index component and and building out the scaffolding to hold such a thing in KinoSearch/Lucy. Here's a sketch of how it might work (assume Java bindings): public class MyArchitecture extends Architecture { ArrayListSegDataWriter segDataWriters(InvIndex invindex, Segment segment) { ArrayListSegDataWriter writers = super.segDataWriters(invindex, segment); writers.add(new RTreeWriter(invindex, segment)); return writers; } ArrayListSegDataReader segDataReaders(InvIndex invindex, Segment segment) { ArrayListSegDataReader readers = super.segDataReaders(invindex, segment); readers.add(new RTreeReader(invindex, segment)); return readers; } } public class MySchema extends Schema { public MyArchitecture architecture() { return new MyArchitecture(); } public MySchema() { addField(title, text); addField(content, text); addField(location, new RTreeField()); } public PolyAnalyzer analyzer() { return new PolyAnalyzer(en); } } IndexWriter writer = new IndexWriter(new MySchema(), path); The write-time linchpin is the extensible class SegDataWriter. It's used internally by the public-facing primary indexing class (InvIndexer in KS, probably will be named IndexWriter in Lucy). Here's some current C code for SegWriter in KS: SegWriter* SegWriter_init(SegWriter *self, InvIndex *invindex, Segment *segment) { Schema *schema = InvIndex_Get_Schema(invindex); Architecture *arch = Schema_Get_Architecture(schema); SegDataWriter_init((SegDataWriter*)self, invindex, segment); self-inverter= Inverter_new(InvIndex_Get_Schema(invindex)); self-writers = Arch_SegDataWriters(arch, invindex, segment); return self; } void SegWriter_add_inverted_doc(SegWriter *self, Inverter *inverter, i32_t doc_num) { u32_t i; Seg_Add_Inverted_Doc(self-segment, inverter, doc_num); for (i = 0; i self-writers-size; i++) { SegDataWriter *writer = (SegDataWriter*)VA_Fetch(self-writers, i); SegDataWriter_Add_Inverted_Doc(writer, inverter, doc_num); } } IndexWriter.addDoc() calls SegWriter.addDoc(), which inverts the document and calls SegWriter.addInvertedDoc(). SegWriter.addInvertedDoc() recurses down into each of the SegWriter's children -- including, potentially, the RTreeWriter. Marvin Humphrey - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org
Re: start a new spatial contrib
Ryan McKinley wrote: I asked a while back how you all feel about letting me have commit access on /contrib, I want to raise the question again just to make sure. +1 Mike - To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org