projects
/
zzz-pokedex.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
a224085
)
Fixed whoosh index creation to work with 0.2.x. #15
author
Eevee
<git@veekun.com>
Mon, 17 Aug 2009 04:03:49 +0000
(21:03 -0700)
committer
Eevee
<git@veekun.com>
Mon, 17 Aug 2009 04:03:49 +0000
(21:03 -0700)
pokedex/lookup.py
patch
|
blob
|
history
setup.py
patch
|
blob
|
history
diff --git
a/pokedex/lookup.py
b/pokedex/lookup.py
index
9d61ce8
..
2b38a1a
100644
(file)
--- a/
pokedex/lookup.py
+++ b/
pokedex/lookup.py
@@
-1,8
+1,12
@@
# encoding: utf8
# encoding: utf8
+import os, os.path
import re
from sqlalchemy.sql import func
import whoosh
import re
from sqlalchemy.sql import func
import whoosh
+import whoosh.filedb.filestore
+import whoosh.filedb.fileindex
+import whoosh.index
from whoosh.qparser import QueryParser
import whoosh.spelling
from whoosh.qparser import QueryParser
import whoosh.spelling
@@
-42,16
+46,22
@@
def get_index(session):
if index_bits:
return index_bits['index'], index_bits['speller']
if index_bits:
return index_bits['index'], index_bits['speller']
- store = whoosh.store.RamStorage()
+ store = whoosh.
filedb.file
store.RamStorage()
schema = whoosh.fields.Schema(
name=whoosh.fields.ID(stored=True),
table=whoosh.fields.STORED,
row_id=whoosh.fields.STORED,
schema = whoosh.fields.Schema(
name=whoosh.fields.ID(stored=True),
table=whoosh.fields.STORED,
row_id=whoosh.fields.STORED,
- language_id=whoosh.fields.STORED,
+ language=whoosh.fields.STORED,
+
+ # Whoosh 0.2 explodes when using a file-stored schema with no TEXT
+ # columns. Appease it
+ dummy=whoosh.fields.TEXT,
)
)
- # Construct a straight lookup index
- index = whoosh.index.Index(store, schema=schema, create=True)
+ index_directory = '/var/tmp/pokedex'
+ if not os.path.exists(index_directory):
+ os.mkdir(index_directory)
+ index = whoosh.index.create_in(index_directory, schema=schema)
writer = index.writer()
# Index every name in all our tables of interest
writer = index.writer()
# Index every name in all our tables of interest
@@
-82,6
+92,14
@@
def get_index(session):
writer.commit()
writer.commit()
+ # XXX GIHWEGREHKG
+ old__schema = whoosh.spelling.SpellChecker._schema
+ def new__schema(self):
+ schema = old__schema(self)
+ schema.add('dummy', whoosh.fields.TEXT)
+ return schema
+ whoosh.spelling.SpellChecker._schema = new__schema
+
# Construct and populate a spell-checker index. Quicker to do it all
# at once, as every call to add_* does a commit(), and those seem to be
# expensive
# Construct and populate a spell-checker index. Quicker to do it all
# at once, as every call to add_* does a commit(), and those seem to be
# expensive
@@
-93,7
+111,7
@@
def get_index(session):
# complications.
# The below is copied from SpellChecker.add_scored_words without the check
# for isalpha(). XXX get whoosh patched to make this unnecessary!
# complications.
# The below is copied from SpellChecker.add_scored_words without the check
# for isalpha(). XXX get whoosh patched to make this unnecessary!
- writer =
whoosh.writing.IndexWriter(speller.index()
)
+ writer =
speller.index(create=True).writer(
)
for word in speller_entries:
fields = {"word": word, "score": 1}
for size in xrange(speller.mingram, speller.maxgram + 1):
for word in speller_entries:
fields = {"word": word, "score": 1}
for size in xrange(speller.mingram, speller.maxgram + 1):
diff --git
a/setup.py
b/setup.py
index
70e0a95
..
421ab85
100644
(file)
--- a/
setup.py
+++ b/
setup.py
@@
-4,7
+4,7
@@
setup(
version = '0.1',
packages = find_packages(),
package_data = { '': 'data' },
version = '0.1',
packages = find_packages(),
package_data = { '': 'data' },
- install_requires=['SQLAlchemy>=0.5.1', 'whoosh>=0.
1.24
'],
+ install_requires=['SQLAlchemy>=0.5.1', 'whoosh>=0.
2.0
'],
entry_points = {
'console_scripts': [
entry_points = {
'console_scripts': [