Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #88382 > unrolled thread

How to handle file in Whoosh?

Started bysubhabrata.banerji@gmail.com
First post2015-03-31 06:20 -0700
Last post2015-03-31 15:52 +0200
Articles 2 — 2 participants

Back to article view | Back to comp.lang.python


Contents

  How to handle file in Whoosh? subhabrata.banerji@gmail.com - 2015-03-31 06:20 -0700
    Re: How to handle file in Whoosh? Peter Otten <__peter__@web.de> - 2015-03-31 15:52 +0200

#88382 — How to handle file in Whoosh?

Fromsubhabrata.banerji@gmail.com
Date2015-03-31 06:20 -0700
SubjectHow to handle file in Whoosh?
Message-ID<23b11937-781e-473b-ba6e-9b5d68b8ebbd@googlegroups.com>
I am trying to build a search engine, I started with Whoosh. The tutorial and web based materials are fine. Web has sizable question and answers. The initial experiments seem going fine. But I want to handle files located in various parts of my machine. I found "from whoosh.filedb.filestore import FileStorage", but I am looking for a simple example to start with. I tried something as below, it may be giving some result but is it going okay? If any one may please see and correct if required?

>>> txt_file1=open("/python27/whooshtext1.txt","r").read()
>>> txt_file2=open("/python27/whooshtext3.txt","r").read()
>>> writer.add_document(title=u"First document", path= unicode("indexdir"+os.sep+"a"),content=u"txt_file1")
>>> writer.add_document(title=u"Second document", path= unicode("indexdir"+os.sep+"b"),content=u"txt_file2")
>>> writer.commit()
>>> with ix.searcher() as searcher:
    query = QueryParser("content", ix.schema).parse("flood")
        results = searcher.search(query)
        print results
        for result in results:
        print result


<Top 0 Results for Term('content', u'flood') runtime=0.000124042337439>
>>> 

[toc] | [next] | [standalone]


#88384

FromPeter Otten <__peter__@web.de>
Date2015-03-31 15:52 +0200
Message-ID<mailman.373.1427809979.10327.python-list@python.org>
In reply to#88382
subhabrata.banerji@gmail.com wrote:

> I am trying to build a search engine, I started with Whoosh. The tutorial 
and web based materials are fine. Web has sizable question and answers. The 
initial experiments seem going fine. But I want to handle files located in 
various parts of my machine. I found "from whoosh.filedb.filestore import 
FileStorage", but I am looking for a simple example to start with. I tried 
something as below, it may be giving some result but is it going okay? If 
any one may please see and correct if required?
> 
> >>> txt_file1=open("/python27/whooshtext1.txt","r").read()
> >>> txt_file2=open("/python27/whooshtext3.txt","r").read()
> >>> writer.add_document(title=u"First document", path= 
unicode("indexdir"+os.sep+"a"),content=u"txt_file1")

I'm not a whoosh user myself, but if I were to guess:

The content argument should contain the contents of the file, not the 
variable name, e. g.:
import io
...
ENCODING = "ascii" # replace with actual encoding of the file
txt_file1 = io.open("/python27/whooshtext1.txt", encoding=ENCODING).read()
...
writer.add_document(
    title=u"First document", 
    path=os.path.join(u"indexdir", u"a"),
    content=txt_file1)


> >>> writer.add_document(title=u"Second document", path= 
unicode("indexdir"+os.sep+"b"),content=u"txt_file2")
> >>> writer.commit()
> >>> with ix.searcher() as searcher:
>     query = QueryParser("content", ix.schema).parse("flood")
>         results = searcher.search(query)
>         print results
>         for result in results:
>         print result
> 
> 
> <Top 0 Results for Term('content', u'flood') runtime=0.000124042337439>

u"flood" is indeed not in the string u"txt_file2" nor the string 
u"txt_file1", so that's the expected number of matches.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web