[Xapian-tickets] [Xapian] #256: Bug when i switch from a sorting mode to an other in python

Xapian nobody at xapian.org
Thu Apr 24 21:14:49 BST 2008


#256: Bug when i switch from a sorting mode to an other in python
-----------------------------+----------------------------------------------
 Reporter:  versmisse        |       Owner:  olly          
     Type:  defect           |      Status:  new           
 Priority:  normal           |   Milestone:                
Component:  Xapian-bindings  |     Version:  1.0.6         
 Severity:  normal           |    Keywords:  Enquire python
Blockedby:                   |    Platform:  All           
 Blocking:                   |  
-----------------------------+----------------------------------------------
 Hello,

 I'm a French developer and i really want to use xapian for a project. We
 already have a "catalog" object but it is not efficient enough.

 I have already written a good part of the code (in python), but i have a
 problem with Enquire. When i use two different sorters and the first one
 no longer exists (simulated by a "del" in the snippet), i have an error.

 I simulate my problem with the following snippet that crashes with a
 beautiful segmentation fault
 {{{
 #!/usr/bin/python
 # -*- coding: UTF-8 -*-

 from xapian import (WritableDatabase, DB_CREATE_OR_OPEN, Document,
                     Query, Enquire, MultiValueSorter,
                     sortable_serialise)

 db = WritableDatabase('my_db', DB_CREATE_OR_OPEN)

 doc1 = Document()
 doc1.add_posting('foo', 0)
 doc1.add_value(0, sortable_serialise(1))
 doc1.add_value(1, 'doc1')

 doc2 = Document()
 doc2.add_posting('foo', 0)
 doc2.add_value(0, sortable_serialise(2))
 doc2.add_value(1, 'doc2')

 db.add_document(doc1)
 db.add_document(doc2)

 enquire = Enquire(db)
 enquire.set_query(Query(''))


 sorter = MultiValueSorter()
 sorter.add(0)
 enquire.set_sort_by_key_then_relevance(sorter)
 for doc in enquire.get_mset(0,10):
     print doc.get_document().get_value(1)

 del sorter

 enquire.set_sort_by_value_then_relevance(0)
 for doc in enquire.get_mset(0,10):
     print doc.get_document().get_value(1)
 }}}
 When i delete the "del sorter" line, there is not problem.
 Is it a bug or is it only my fault?
 Do we must do a new Enquire instance for each sort?

 Thanks you in advance for your answer.
 And thanks you very much for your project.

 Best regards,
 David Versmisse.

-- 
Ticket URL: <http://trac.xapian.org/ticket/256>
Xapian <http://trac.xapian.org>
Xapian



More information about the Xapian-tickets mailing list