lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Wettin (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LUCENE-550) InstanciatedIndex - faster but memory consuming index
Date Sat, 22 Jul 2006 19:50:14 GMT
     [ http://issues.apache.org/jira/browse/LUCENE-550?page=all ]

Karl Wettin updated LUCENE-550:
-------------------------------

    Attachment: lucene2-karl_20060722.tar.gz

New code. More backwards compatible. Just a very few changes required to the Lucene core.


Now with test cases from distribution, but only search/* has been ported. Fails some (11 of
172) score and RMI related tests that I can not explain. Could really need some help with
that

Except for that this seems to work really great now. I've been running this in a live environment
for a few hours (some hundred thousand user queries) and it is *really* fast.


Output from failing tests:


junit.framework.AssertionFailedError: expected:<3> but was:<0>
	at org.apache.lucene.search.TestPhraseQuery.testSlopScoring(TestPhraseQuery.java:298)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


junit.framework.AssertionFailedError: Using 10 documents per index:
	at org.apache.lucene.search.TestMultiSearcher.testNormalization(TestMultiSearcher.java:247)
	at org.apache.lucene.search.TestMultiSearcher.testNormalization10(TestMultiSearcher.java:220)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

------- testSimpleEqualScores1 -------
#0: 1.000000000 - d3
#1: 1.000000000 - d4
#2: 0.500000000 - d1
#3: 0.500000000 - d2

junit.framework.AssertionFailedError: score #2 is not the same expected:<1.0> but was:<0.5>
	at org.apache.lucene.search.TestDisjunctionMaxQuery.testSimpleEqualScores1(TestDisjunctionMaxQuery.java:142)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

------- testSimpleEqualScores2 -------
#0: 1.000000000 - d2
#1: 0.500000000 - d1
#2: 0.500000000 - d4

junit.framework.AssertionFailedError: score #1 is not the same expected:<1.0> but was:<0.5>
	at org.apache.lucene.search.TestDisjunctionMaxQuery.testSimpleEqualScores2(TestDisjunctionMaxQuery.java:166)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

------- testSimpleEqualScores3 -------
#0: 1.000000000 - d2
#1: 1.000000000 - d3
#2: 1.000000000 - d4
#3: 0.500000000 - d1

junit.framework.AssertionFailedError: score #3 is not the same expected:<1.0> but was:<0.5>
	at org.apache.lucene.search.TestDisjunctionMaxQuery.testSimpleEqualScores3(TestDisjunctionMaxQuery.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


junit.framework.AssertionFailedError: A,B,D, only B in range expected:<1> but was:<2>
	at org.apache.lucene.search.TestRangeQuery.testExclusive(TestRangeQuery.java:39)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


junit.framework.AssertionFailedError: A,B,D - A and B in range expected:<2> but was:<5>
	at org.apache.lucene.search.TestRangeQuery.testInclusive(TestRangeQuery.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


junit.framework.AssertionFailedError: Using 10 documents per index:
	at org.apache.lucene.search.TestMultiSearcher.testNormalization(TestMultiSearcher.java:247)
	at org.apache.lucene.search.TestMultiSearcher.testNormalization10(TestMultiSearcher.java:220)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


java.rmi.server.ExportException: internal error: ObjID already in use
	at sun.rmi.transport.ObjectTable.putTarget(ObjectTable.java:197)
	at sun.rmi.transport.Transport.exportObject(Transport.java:90)
	at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:231)
	at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:398)
	at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:131)
	at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:195)
	at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:107)
	at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:93)
	at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:198)
	at org.apache.lucene.search.TestSort.startServer(TestSort.java:704)
	at org.apache.lucene.search.TestSort.getRemote(TestSort.java:689)
	at org.apache.lucene.search.TestSort.testRemoteSort(TestSort.java:410)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


java.rmi.server.ExportException: internal error: ObjID already in use
	at sun.rmi.transport.ObjectTable.putTarget(ObjectTable.java:197)
	at sun.rmi.transport.Transport.exportObject(Transport.java:90)
	at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:231)
	at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:398)
	at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:131)
	at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:195)
	at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:107)
	at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:93)
	at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:198)
	at org.apache.lucene.search.TestSort.startServer(TestSort.java:704)
	at org.apache.lucene.search.TestSort.getRemote(TestSort.java:689)
	at org.apache.lucene.search.TestSort.testRemoteCustomSort(TestSort.java:417)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


java.rmi.server.ExportException: internal error: ObjID already in use
	at sun.rmi.transport.ObjectTable.putTarget(ObjectTable.java:197)
	at sun.rmi.transport.Transport.exportObject(Transport.java:90)
	at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:231)
	at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:398)
	at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:131)
	at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:195)
	at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:107)
	at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:93)
	at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:198)
	at org.apache.lucene.search.TestSort.startServer(TestSort.java:704)
	at org.apache.lucene.search.TestSort.getRemote(TestSort.java:689)
	at org.apache.lucene.search.TestSort.testNormalizedScores(TestSort.java:440)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)


> InstanciatedIndex - faster but memory consuming index
> -----------------------------------------------------
>
>                 Key: LUCENE-550
>                 URL: http://issues.apache.org/jira/browse/LUCENE-550
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: Store
>    Affects Versions: 1.9
>            Reporter: Karl Wettin
>         Attachments: class_diagram.png, class_diagram.png, instanciated_20060527.tar,
InstanciatedIndexTermEnum.java, lucene.1.9-karl1.jpg, lucene2-karl_20060722.tar.gz
>
>
> After fixing the bugs, it's now 4.5 -> 5 times the speed. This is true for both at
index and query time. Sorry if I got your hopes up too much. There are still things to be
done though. Might not have time to do anything with this until next month, so here is the
code if anyone wants a peek.
> Not good enough for Jira yet, but if someone wants to fool around with it, here it is.
The implementation passes a TermEnum -> TermDocs -> Fields -> TermVector comparation
against the same data in a Directory.
> When it comes to features, offsets don't exists and positions are stored ugly and has
bugs.
> You might notice that norms are float[] and not byte[]. That is me who refactored it
to see if it would do any good. Bit shifting don't take many ticks, so I might just revert
that.
> I belive the code is quite self explaining.
> InstanciatedIndex ii = ..
> ii.new InstanciatedIndexReader();
> ii.addDocument(s).. replace IndexWriter for now.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message