List Info

Thread: Problems with positions and replace_document




Problems with positions and replace_document
user name
2006-11-10 20:34:07
Hi Rafael,

thanks for you help. That's strange because I did almost the
same
thing using c++ but I got different results. I sent to the
list a link
with the code I did. I appreciate if you take a look. As
your python
code works it's likely I mess up something in my own code.

Thanks,

Nemec




Friday, November 10, 2006, 5:07:13 PM, you wrote:

> Fernando, look this fast test:

> sdmsdm-desktop:~/db$ python
> Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02)
> [GCC 4.1.2 20060928 (prerelease) (Ubuntu
4.1.1-13ubuntu5)] on linux2
> Type "help", "copyright",
"credits" or "license" for more
information.
>>>> import xapian
>>>> db = xapian.WritableDatabase('.',
xapian.DB_CREATE_OR_OPEN)
>>>> doc = xapian.Document
>>>> doc = xapian.Document()
>>>> doc.add_posting('foo', 1)
>>>> doc.add_posting('bar', 2)
>>>> db.add_document(doc)
> 1
>>>>

> EXIT PYTHON

> sdmsdm-desktop:~/db$ python
> Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02)
> [GCC 4.1.2 20060928 (prerelease) (Ubuntu
4.1.1-13ubuntu5)] on linux2
> Type "help", "copyright",
"credits" or "license" for more
information.
>>>> import xapian
>>>> a = xapian.open('.')
>>>> db = xapian.open('.')
>>>> db.get_doccount()
> 1
>>>> db.get_document(1)
>>>> doc = db.get_document(1)
>>>> doc.add_value(0,"fnord")
>>>> db = xapian.WritableDatabase('.',
xapian.DB_CREATE_OR_OPEN)
>>>> db.replace_document(1, doc)
>>>>

> EXIT PYTHON AGAIN

> sdmsdm-desktop:~/db$ python
> Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02)
> [GCC 4.1.2 20060928 (prerelease) (Ubuntu
4.1.1-13ubuntu5)] on linux2
> Type "help", "copyright",
"credits" or "license" for more
information.
>>>> import xapian
>>>> db = xapian.open('.')
>>>> doc = db.get_document(1)
>>>> for i in doc.termlist():
> ...   print i
> ...
> ['bar', 1, 0, <xapian.PositionIter instance at
0xb7b67b8c>]
> ['foo', 1, 0, <xapian.PositionIter instance at
0xb7b67c2c>]
>>>> enq = xapian.Enquire(db)
>>>> qp = xapian.QueryParser()
>>>> enq.set_query(qp.parse_query('"foo
bar"'))
>>>> m = enq.get_mset(0,1)
>>>> for i in m:
> ...   print i
> ...
> [1, 0.30830135965451672, 0, 100, <xapian.Document;
proxy of <Swig Object of
> type 'Xapian:ocument
*' at 0x81a7118> >]

> As you can see, the Xapian overwrote the document
keeping the postlist
> terms, and the search for "foo bar" (Phrase
search) returns the right
> document.

> I'm using Ubuntu 6.10, python2.4 xapian-0.9.6 (just to
test, 0.9.9 is the
> better release xD -remote backend historic-)


--
[]s
Fernando Nemec
fernando.nemecfolha.com.br
http://www.folha.com.br/



_______________________________________________
Xapian-discuss mailing list
Xapian-discusslists.xapian.org
http://lists.xapian.org/mailman/listinfo/xapian-discuss
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )