本文整理汇总了Python中whoosh.filedb.filestore.FileStorage.create方法的典型用法代码示例。如果您正苦于以下问题:Python FileStorage.create方法的具体用法?Python FileStorage.create怎么用?Python FileStorage.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类whoosh.filedb.filestore.FileStorage
的用法示例。
在下文中一共展示了FileStorage.create方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: SearchMigrationTest
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
class SearchMigrationTest(TestCase, TempDirMixin):
"""Search index migration testing"""
def setUp(self):
self.create_temp()
self.storage = FileStorage(self.tempdir)
self.storage.create()
def tearDown(self):
self.remove_temp()
def do_test(self):
fulltext = Fulltext()
fulltext.storage = self.storage
sindex = fulltext.get_source_index()
self.assertIsNotNone(sindex)
tindex = fulltext.get_target_index('cs')
self.assertIsNotNone(tindex)
writer = sindex.writer()
writer.update_document(
pk=1,
source="source",
context="context",
location="location",
)
writer.commit()
writer = tindex.writer()
writer.update_document(
pk=1,
target="target",
comment="comment"
)
writer.commit()
for item in ('source', 'context', 'location', 'target'):
self.assertEqual(
fulltext.search(item, ['cs'], {item: True}),
set([1])
)
def test_nonexisting(self):
self.do_test()
def test_nonexisting_dir(self):
shutil.rmtree(self.tempdir)
self.tempdir = None
self.do_test()
示例2: test_storage_creation
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
def test_storage_creation():
import tempfile, uuid
from whoosh import fields
from whoosh.filedb.filestore import FileStorage
schema = fields.Schema(text=fields.TEXT)
uid = uuid.uuid4()
dirpath = os.path.join(tempfile.gettempdir(), str(uid))
assert not os.path.exists(dirpath)
st = FileStorage(dirpath)
st.create()
assert os.path.exists(dirpath)
ix = st.create_index(schema)
with ix.writer() as w:
w.add_document(text=u("alfa bravo"))
w.add_document(text=u("bracho charlie"))
st.destroy()
assert not os.path.exists(dirpath)
示例3: setup_index
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
def setup_index():
storage = FileStorage(data_dir('memory'))
storage.create()
return storage.create_index(TMSchema())
示例4: temp_storage
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
def temp_storage(self, name=None):
tdir = tempfile.gettempdir()
name = name or "%s.tmp" % random_name()
path = os.path.join(tdir, name)
tempstore = FileStorage(path)
return tempstore.create()
示例5: _temp_storage
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
def _temp_storage(self, name=None):
path = tempfile.mkdtemp()
tempstore = FileStorage(path)
return tempstore.create()
示例6: SearchMigrationTest
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
class SearchMigrationTest(TestCase, TempDirMixin):
"""Search index migration testing"""
def setUp(self):
self.create_temp()
self.backup = weblate.trans.search.STORAGE
self.storage = FileStorage(self.tempdir)
weblate.trans.search.STORAGE = self.storage
self.storage.create()
def tearDown(self):
self.remove_temp()
weblate.trans.search.STORAGE = self.backup
def do_test(self, source, target):
if source is not None:
self.storage.create_index(source, 'source')
if target is not None:
self.storage.create_index(target, 'target-cs')
sindex = weblate.trans.search.get_source_index()
self.assertIsNotNone(sindex)
tindex = weblate.trans.search.get_target_index('cs')
self.assertIsNotNone(tindex)
writer = sindex.writer()
writer.update_document(
pk=1,
source="source",
context="context",
location="location",
)
writer.commit()
writer = tindex.writer()
writer.update_document(
pk=1,
target="target",
comment="comment"
)
writer.commit()
for item in ('source', 'context', 'location', 'target'):
self.assertEqual(
fulltext_search(item, ['cs'], {item: True}),
set([1])
)
def test_nonexisting(self):
self.do_test(None, None)
def test_nonexisting_dir(self):
shutil.rmtree(self.tempdir)
self.tempdir = None
self.do_test(None, None)
def test_current(self):
source = weblate.trans.search.SourceSchema
target = weblate.trans.search.TargetSchema
self.do_test(source, target)
def test_2_4(self):
source = Schema(
checksum=ID(stored=True, unique=True),
source=TEXT(),
context=TEXT(),
location=TEXT()
)
target = Schema(
checksum=ID(stored=True, unique=True),
target=TEXT(),
comment=TEXT(),
)
self.do_test(source, target)
def test_2_1(self):
source = Schema(
checksum=ID(stored=True, unique=True),
source=TEXT(),
context=TEXT(),
)
target = Schema(
checksum=ID(stored=True, unique=True),
target=TEXT(),
)
self.do_test(source, target)
示例7: __init__
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
class DB:
def __init__(self, config, api):
self.config = config
self.api = api
self.cache_dir = user_cache_dir('fac', appauthor=False)
self.storage = FileStorage(os.path.join(self.cache_dir, 'index'))
self.schema = Schema(
name=TEXT(sortable=True, phrase=True, field_boost=3,
analyzer=intraword),
owner=TEXT(sortable=True, field_boost=2.5,
analyzer=intraword),
title=TEXT(field_boost=2.0, phrase=False),
summary=TEXT(phrase=True),
downloads=NUMERIC(sortable=True),
sort_name=SortColumn(),
name_id=ID(stored=True),
)
try:
self.index = self.storage.open_index()
except EmptyIndexError:
self.index = None
self.db = JSONFile(os.path.join(self.cache_dir, 'mods.json'))
def maybe_update(self):
if self.needs_update():
self.update()
def needs_update(self):
if not self.index or not self.db.get('mods'):
return True
last_update = self.db.mtime
period = int(self.config.get('db', 'update_period'))
db_age = time.time() - last_update
return db_age > period
def update(self):
with ProgressWidget("Downloading mod database...") as progress:
mods = self.api.get_mods(progress)
old_mods = self.db.get('mods', {})
self.db.mods = {mod.name: mod.data
for mod in mods}
if old_mods != self.db['mods']:
print("Building search index...")
self.index = self.storage.create().create_index(self.schema)
with self.index.writer() as w:
for mod in mods:
w.add_document(
name_id=mod.name,
name=mod.name,
sort_name=mod.name.lower(),
title=mod.title.lower(),
owner=mod.owner.lower(),
summary=mod.summary.lower(),
downloads=mod.downloads_count
)
self.db.save()
print("Updated mods database (%d mods)" % len(mods))
else:
print("Index is up to date")
self.db.utime()
def search(self, query, sortedby=None, limit=None):
parser = qparser.MultifieldParser(
['owner', 'name', 'title', 'summary'],
schema=self.schema
)
parser.add_plugin(qparser.FuzzyTermPlugin())
if not isinstance(query, Query):
query = parser.parse(query or 'name:*')
with self.index.searcher() as searcher:
if sortedby:
facets = []
for field in sortedby.split(','):
reverse = field.startswith('-')
if reverse:
field = field[1:]
if 'sort_' + field in self.schema:
field = 'sort_' + field
facets.append(FieldFacet(field, reverse=reverse))
if len(facets) == 1:
sortedby = facets[0]
else:
sortedby = MultiFacet(facets)
for result in searcher.search(
query,
limit=limit,
#.........这里部分代码省略.........
示例8: SearchMigrationTest
# 需要导入模块: from whoosh.filedb.filestore import FileStorage [as 别名]
# 或者: from whoosh.filedb.filestore.FileStorage import create [as 别名]
class SearchMigrationTest(TestCase):
"""Search index migration testing"""
def setUp(self):
self.path = tempfile.mkdtemp()
self.backup = weblate.trans.search.STORAGE
self.storage = FileStorage(self.path)
weblate.trans.search.STORAGE = self.storage
self.storage.create()
def tearDown(self):
if os.path.exists(self.path):
shutil.rmtree(self.path)
weblate.trans.search.STORAGE = self.backup
def do_test(self, source, target):
if source is not None:
self.storage.create_index(source, 'source')
if target is not None:
self.storage.create_index(target, 'target-cs')
self.assertIsNotNone(
weblate.trans.search.get_source_index()
)
self.assertIsNotNone(
weblate.trans.search.get_target_index('cs')
)
def test_nonexisting(self):
self.do_test(None, None)
def test_nonexisting_dir(self):
shutil.rmtree(self.path)
self.do_test(None, None)
def test_current(self):
source = weblate.trans.search.SourceSchema
target = weblate.trans.search.TargetSchema
self.do_test(source, target)
def test_2_4(self):
source = Schema(
checksum=ID(stored=True, unique=True),
source=TEXT(),
context=TEXT(),
location=TEXT()
)
target = Schema(
checksum=ID(stored=True, unique=True),
target=TEXT(),
comment=TEXT(),
)
self.do_test(source, target)
def test_2_1(self):
source = Schema(
checksum=ID(stored=True, unique=True),
source=TEXT(),
context=TEXT(),
)
target = Schema(
checksum=ID(stored=True, unique=True),
target=TEXT(),
)
self.do_test(source, target)