本文整理汇总了Python中whoosh.filedb.filestore.RamStorage类的典型用法代码示例。如果您正苦于以下问题:Python RamStorage类的具体用法?Python RamStorage怎么用?Python RamStorage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RamStorage类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_ramstorage
def test_ramstorage():
from whoosh.filedb.filestore import RamStorage
st = RamStorage()
lock = st.lock("test")
lock.acquire()
lock.release()
开发者ID:JunjieHu,项目名称:dl,代码行数:7,代码来源:test_misc.py
示例2: test_compatibility
def test_compatibility():
from whoosh.scoring import Weighting
# This is the old way of doing a custom weighting model, check that
# it's still supported...
class LegacyWeighting(Weighting):
use_final = True
def score(self, searcher, fieldname, text, docnum, weight):
return weight + 0.5
def final(self, searcher, docnum, score):
return score * 1.5
schema = fields.Schema(text=fields.TEXT)
ix = RamStorage().create_index(schema)
w = ix.writer()
domain = "alfa bravo charlie delta".split()
for ls in permutations(domain, 3):
w.add_document(text=u(" ").join(ls))
w.commit()
s = ix.searcher(weighting=LegacyWeighting())
r = s.search(query.Term("text", u("bravo")))
assert r.score(0) == 2.25
开发者ID:JunjieHu,项目名称:dl,代码行数:25,代码来源:test_weightings.py
示例3: test_term_inspection
def test_term_inspection():
schema = fields.Schema(title=fields.TEXT(stored=True),
content=fields.TEXT)
st = RamStorage()
ix = st.create_index(schema)
writer = ix.writer()
writer.add_document(title=u("My document"),
content=u("AA AA BB BB CC AA AA AA BB BB CC DD EE EE"))
writer.add_document(title=u("My other document"),
content=u("AA AB BB CC EE EE AX AX DD"))
writer.commit()
reader = ix.reader()
assert_equal(list(reader.lexicon("content")), [u('aa'), u('ab'), u('ax'), u('bb'), u('cc'), u('dd'), u('ee')])
assert_equal(list(reader.expand_prefix("content", "a")), [u('aa'), u('ab'), u('ax')])
assert (set(reader.all_terms())
== set([('content', u('aa')), ('content', u('ab')), ('content', u('ax')),
('content', u('bb')), ('content', u('cc')), ('content', u('dd')),
('content', u('ee')), ('title', u('document')), ('title', u('my')),
('title', u('other'))]))
# (text, doc_freq, index_freq)
assert_equal(_fstats(reader.iter_field("content")),
[(u('aa'), 2, 6), (u('ab'), 1, 1), (u('ax'), 1, 2), (u('bb'), 2, 5),
(u('cc'), 2, 3), (u('dd'), 2, 2), (u('ee'), 2, 4)])
assert_equal(_fstats(reader.iter_field("content", prefix="c")),
[(u('cc'), 2, 3), (u('dd'), 2, 2), (u('ee'), 2, 4)])
assert_equal(list(reader.most_frequent_terms("content")),
[(6, u('aa')), (5, u('bb')), (4, u('ee')), (3, u('cc')), (2, u('dd'))])
assert_equal(list(reader.most_frequent_terms("content", prefix="a")),
[(6, u('aa')), (2, u('ax')), (1, u('ab'))])
开发者ID:ChimmyTee,项目名称:oh-mainline,代码行数:30,代码来源:test_reading.py
示例4: test_frequency_keyword
def test_frequency_keyword():
s = fields.Schema(content=fields.KEYWORD)
st = RamStorage()
ix = st.create_index(s)
w = ix.writer()
w.add_document(content=u("A B C D E"))
w.add_document(content=u("B B B B C D D"))
w.add_document(content=u("D E F"))
w.commit()
with ix.reader() as tr:
assert tr.doc_frequency("content", u("B")) == 2
assert tr.frequency("content", u("B")) == 5
assert tr.doc_frequency("content", u("E")) == 2
assert tr.frequency("content", u("E")) == 2
assert tr.doc_frequency("content", u("A")) == 1
assert tr.frequency("content", u("A")) == 1
assert tr.doc_frequency("content", u("D")) == 3
assert tr.frequency("content", u("D")) == 4
assert tr.doc_frequency("content", u("F")) == 1
assert tr.frequency("content", u("F")) == 1
assert tr.doc_frequency("content", u("Z")) == 0
assert tr.frequency("content", u("Z")) == 0
stats = [(fname, text, ti.doc_frequency(), ti.weight())
for (fname, text), ti in tr]
assert stats == [("content", b("A"), 1, 1), ("content", b("B"), 2, 5),
("content", b("C"), 2, 2), ("content", b("D"), 3, 4),
("content", b("E"), 2, 2), ("content", b("F"), 1, 1)]
开发者ID:pombredanne,项目名称:whoosh,代码行数:31,代码来源:test_indexing.py
示例5: test_missing_field
def test_missing_field():
schema = fields.Schema()
ix = RamStorage().create_index(schema)
with ix.searcher() as s:
with pytest.raises(KeyError):
s.document_numbers(id=u("test"))
开发者ID:JunjieHu,项目名称:dl,代码行数:7,代码来源:test_fields.py
示例6: test_whole_noterms
def test_whole_noterms():
schema = fields.Schema(text=fields.TEXT(stored=True), tag=fields.KEYWORD)
ix = RamStorage().create_index(schema)
with ix.writer() as w:
w.add_document(text=u("alfa bravo charlie delta echo foxtrot golf"),
tag=u("foo"))
with ix.searcher() as s:
r = s.search(query.Term("text", u("delta")))
assert len(r) == 1
r.fragmenter = highlight.WholeFragmenter()
r.formatter = highlight.UppercaseFormatter()
hi = r[0].highlights("text")
assert hi == u("alfa bravo charlie DELTA echo foxtrot golf")
r = s.search(query.Term("tag", u("foo")))
assert len(r) == 1
r.fragmenter = highlight.WholeFragmenter()
r.formatter = highlight.UppercaseFormatter()
hi = r[0].highlights("text")
assert hi == u("")
hi = r[0].highlights("text", minscore=0)
assert hi == u("alfa bravo charlie delta echo foxtrot golf")
开发者ID:JunjieHu,项目名称:dl,代码行数:25,代码来源:test_highlighting.py
示例7: test_scoring
def test_scoring():
schema = fields.Schema(kind=fields.ID,
name=fields.KEYWORD(scorable=True, stored=True))
ix = RamStorage().create_index(schema)
with ix.writer() as w:
with w.group():
w.add_document(kind=u("class"), name=u("Index"))
w.add_document(kind=u("method"), name=u("add document"))
w.add_document(kind=u("method"), name=u("add reader"))
w.add_document(kind=u("method"), name=u("close"))
with w.group():
w.add_document(kind=u("class"), name=u("Accumulator"))
w.add_document(kind=u("method"), name=u("add"))
w.add_document(kind=u("method"), name=u("get result"))
with w.group():
w.add_document(kind=u("class"), name=u("Calculator"))
w.add_document(kind=u("method"), name=u("add"))
w.add_document(kind=u("method"), name=u("add all"))
w.add_document(kind=u("method"), name=u("add some"))
w.add_document(kind=u("method"), name=u("multiply"))
w.add_document(kind=u("method"), name=u("close"))
with ix.searcher() as s:
q = query.NestedParent(query.Term("kind", "class"),
query.Term("name", "add"))
r = s.search(q)
assert [hit["name"] for hit in r] == ["Calculator", "Index", "Accumulator"]
开发者ID:wdv4758h,项目名称:ZipPy,代码行数:27,代码来源:test_nested.py
示例8: test_nested_parent
def test_nested_parent():
schema = fields.Schema(name=fields.ID(stored=True), type=fields.ID,
part=fields.ID, price=fields.NUMERIC)
ix = RamStorage().create_index(schema)
with ix.writer() as w:
with w.group():
w.add_document(name=u("iPad"), type=u("product"))
w.add_document(part=u("screen"), price=100)
w.add_document(part=u("battery"), price=50)
w.add_document(part=u("case"), price=20)
with w.group():
w.add_document(name=u("iPhone"), type=u("product"))
w.add_document(part=u("screen"), price=60)
w.add_document(part=u("battery"), price=30)
w.add_document(part=u("case"), price=10)
with w.group():
w.add_document(name=u("Mac mini"), type=u("product"))
w.add_document(part=u("hard drive"), price=50)
w.add_document(part=u("case"), price=50)
with ix.searcher() as s:
price = s.schema["price"]
pq = query.Term("type", "product")
cq = query.Term("price", 50)
q = query.NestedParent(pq, cq)
r = s.search(q)
assert sorted([hit["name"] for hit in r]) == ["Mac mini", "iPad"]
开发者ID:wdv4758h,项目名称:ZipPy,代码行数:31,代码来源:test_nested.py
示例9: test_everything_is_a_parent
def test_everything_is_a_parent():
schema = fields.Schema(id=fields.STORED, kind=fields.ID,
name=fields.ID(stored=True))
k = u("alfa")
ix = RamStorage().create_index(schema)
with ix.writer() as w:
w.add_document(id=0, kind=k, name=u("one"))
w.add_document(id=1, kind=k, name=u("two"))
w.add_document(id=2, kind=k, name=u("three"))
w.add_document(id=3, kind=k, name=u("four"))
w.add_document(id=4, kind=k, name=u("one"))
w.add_document(id=5, kind=k, name=u("two"))
w.add_document(id=6, kind=k, name=u("three"))
w.add_document(id=7, kind=k, name=u("four"))
w.add_document(id=8, kind=k, name=u("one"))
w.add_document(id=9, kind=k, name=u("two"))
w.add_document(id=10, kind=k, name=u("three"))
w.add_document(id=11, kind=k, name=u("four"))
with ix.searcher() as s:
pq = query.Term("kind", k)
cq = query.Or([query.Term("name", "two"), query.Term("name", "four")])
q = query.NestedParent(pq, cq)
r = s.search(q)
assert [hit["id"] for hit in r] == [1, 3, 5, 7, 9, 11]
开发者ID:wdv4758h,项目名称:ZipPy,代码行数:25,代码来源:test_nested.py
示例10: test_no_parents
def test_no_parents():
schema = fields.Schema(id=fields.STORED, kind=fields.ID,
name=fields.ID(stored=True))
k = u("alfa")
ix = RamStorage().create_index(schema)
with ix.writer() as w:
w.add_document(id=0, kind=k, name=u("one"))
w.add_document(id=1, kind=k, name=u("two"))
w.add_document(id=2, kind=k, name=u("three"))
w.add_document(id=3, kind=k, name=u("four"))
w.add_document(id=4, kind=k, name=u("one"))
w.add_document(id=5, kind=k, name=u("two"))
w.add_document(id=6, kind=k, name=u("three"))
w.add_document(id=7, kind=k, name=u("four"))
w.add_document(id=8, kind=k, name=u("one"))
w.add_document(id=9, kind=k, name=u("two"))
w.add_document(id=10, kind=k, name=u("three"))
w.add_document(id=11, kind=k, name=u("four"))
with ix.searcher() as s:
pq = query.Term("kind", "bravo")
cq = query.Or([query.Term("name", "two"), query.Term("name", "four")])
q = query.NestedParent(pq, cq)
r = s.search(q)
assert r.is_empty()
开发者ID:wdv4758h,项目名称:ZipPy,代码行数:25,代码来源:test_nested.py
示例11: test_intersection
def test_intersection(self):
schema = fields.Schema(key = fields.ID(stored=True), value = fields.TEXT(stored=True))
st = RamStorage()
ix = st.create_index(schema)
w = ix.writer()
w.add_document(key=u"a", value=u"alpha bravo charlie delta")
w.add_document(key=u"b", value=u"echo foxtrot alpha bravo")
w.add_document(key=u"c", value=u"charlie delta golf hotel")
w.commit()
w = ix.writer()
w.add_document(key=u"d", value=u"india alpha bravo charlie")
w.add_document(key=u"e", value=u"delta bravo india bravo")
w.commit()
searcher = ix.searcher()
q = And([Term("value", u"bravo"), Term("value", u"delta")])
sc = q.scorer(searcher)
self.assertEqual(self._keys(searcher, sc.all_ids()), ["a", "e"])
q = And([Term("value", u"bravo"), Term("value", u"alpha")])
sc = q.scorer(searcher)
self.assertEqual(self._keys(searcher, sc.all_ids()), ["a", "b", "d"])
开发者ID:SpaceAppsXploration,项目名称:whoosh,代码行数:25,代码来源:test_scorers.py
示例12: test_correct_query
def test_correct_query():
schema = fields.Schema(a=fields.TEXT(spelling=True), b=fields.TEXT)
ix = RamStorage().create_index(schema)
w = ix.writer()
w.add_document(a=u("alfa bravo charlie delta"))
w.add_document(a=u("delta echo foxtrot golf"))
w.add_document(a=u("golf hotel india juliet"))
w.add_document(a=u("juliet kilo lima mike"))
w.commit()
s = ix.searcher()
qp = QueryParser("a", ix.schema)
qtext = u('alpha ("brovo november" OR b:dolta) detail')
q = qp.parse(qtext, ix.schema)
c = s.correct_query(q, qtext)
assert c.query.__unicode__() == '(a:alfa AND (a:"bravo november" OR b:dolta) AND a:detail)'
assert c.string == 'alfa ("bravo november" OR b:dolta) detail'
qtext = u('alpha b:("brovo november" a:delta) detail')
q = qp.parse(qtext, ix.schema)
c = s.correct_query(q, qtext)
assert c.query.__unicode__() == '(a:alfa AND b:"brovo november" AND a:delta AND a:detail)'
assert c.string == 'alfa b:("brovo november" a:delta) detail'
hf = highlight.HtmlFormatter(classname="c")
assert c.format_string(hf) == '<strong class="c term0">alfa</strong> b:("brovo november" a:delta) detail'
开发者ID:JunjieHu,项目名称:dl,代码行数:27,代码来源:test_spelling.py
示例13: test_add_spelling
def test_add_spelling():
schema = fields.Schema(text1=fields.TEXT, text2=fields.TEXT)
ix = RamStorage().create_index(schema)
w = ix.writer()
w.add_document(text1=u("render zorro kaori postal"), text2=u("alfa"))
w.add_document(text1=u("reader zebra koala pastry"), text2=u("alpa"))
w.add_document(text1=u("leader libra ooala paster"), text2=u("alpha"))
w.add_document(text1=u("feeder lorry zoala baster"), text2=u("olfo"))
w.commit()
with ix.reader() as r:
assert not r.has_word_graph("text1")
assert not r.has_word_graph("text2")
from whoosh.writing import add_spelling
add_spelling(ix, ["text1", "text2"])
with ix.reader() as r:
assert r.has_word_graph("text1")
assert r.has_word_graph("text2")
sp = spelling.ReaderCorrector(r, "text1")
assert sp.suggest(u("kaola"), maxdist=1) == [u('koala')]
assert sp.suggest(u("kaola"), maxdist=2) == [u('koala'), u('kaori'), u('ooala'), u('zoala')]
sp = spelling.ReaderCorrector(r, "text2")
assert sp.suggest(u("alfo"), maxdist=1) == [u("alfa"), u("olfo")]
开发者ID:JunjieHu,项目名称:dl,代码行数:27,代码来源:test_spelling.py
示例14: test_boolean
def test_boolean():
schema = fields.Schema(id=fields.ID(stored=True),
done=fields.BOOLEAN(stored=True))
ix = RamStorage().create_index(schema)
w = ix.writer()
w.add_document(id=u("a"), done=True)
w.add_document(id=u("b"), done=False)
w.add_document(id=u("c"), done=True)
w.add_document(id=u("d"), done=False)
w.add_document(id=u("e"), done=True)
w.commit()
with ix.searcher() as s:
qp = qparser.QueryParser("id", schema)
r = s.search(qp.parse("done:true"))
assert sorted([d["id"] for d in r]) == ["a", "c", "e"]
assert all(d["done"] for d in r)
r = s.search(qp.parse("done:yes"))
assert sorted([d["id"] for d in r]) == ["a", "c", "e"]
assert all(d["done"] for d in r)
q = qp.parse("done:false")
assert q.__class__ == query.Term
assert q.text is False
assert schema["done"].to_bytes(False) == b("f")
r = s.search(q)
assert sorted([d["id"] for d in r]) == ["b", "d"]
assert not any(d["done"] for d in r)
r = s.search(qp.parse("done:no"))
assert sorted([d["id"] for d in r]) == ["b", "d"]
assert not any(d["done"] for d in r)
开发者ID:JunjieHu,项目名称:dl,代码行数:35,代码来源:test_fields.py
示例15: test_highlight_daterange
def test_highlight_daterange():
from datetime import datetime
schema = fields.Schema(id=fields.ID(unique=True, stored=True),
title=fields.TEXT(stored=True),
content=fields.TEXT(stored=True),
released=fields.DATETIME(stored=True))
ix = RamStorage().create_index(schema)
w = ix.writer()
w.update_document(
id=u('1'),
title=u('Life Aquatic'),
content=u('A nautic film crew sets out to kill a gigantic shark.'),
released=datetime(2004, 12, 25)
)
w.update_document(
id=u('2'),
title=u('Darjeeling Limited'),
content=u('Three brothers meet in India for a life changing train journey.'),
released=datetime(2007, 10, 27)
)
w.commit()
s = ix.searcher()
r = s.search(Term('content', u('train')), terms=True)
assert_equal(len(r), 1)
assert_equal(r[0]["id"], "2")
assert_equal(r[0].highlights("content"), 'for a life changing <b class="match term0">train</b> journey')
r = s.search(DateRange('released', datetime(2007, 1, 1), None))
assert_equal(len(r), 1)
assert_equal(r[0].highlights("content"), '')
开发者ID:ChimmyTee,项目名称:oh-mainline,代码行数:33,代码来源:test_queries.py
示例16: test_boolean_strings
def test_boolean_strings():
schema = fields.Schema(i=fields.STORED, b=fields.BOOLEAN(stored=True))
ix = RamStorage().create_index(schema)
with ix.writer() as w:
w.add_document(i=0, b="true")
w.add_document(i=1, b="True")
w.add_document(i=2, b="false")
w.add_document(i=3, b="False")
w.add_document(i=4, b=u("true"))
w.add_document(i=5, b=u("True"))
w.add_document(i=6, b=u("false"))
w.add_document(i=7, b=u("False"))
with ix.searcher() as s:
qp = qparser.QueryParser("b", ix.schema)
def check(qs, nums):
q = qp.parse(qs)
r = s.search(q, limit=None)
assert [hit["i"] for hit in r] == nums
trues = [0, 1, 4, 5]
falses = [2, 3, 6, 7]
check("true", trues)
check("True", trues)
check("false", falses)
check("False", falses)
check("t", trues)
check("f", falses)
开发者ID:JunjieHu,项目名称:dl,代码行数:29,代码来源:test_fields.py
示例17: test_wildcard_existing_terms
def test_wildcard_existing_terms():
s = fields.Schema(key=fields.ID, value=fields.TEXT)
ix = RamStorage().create_index(s)
w = ix.writer()
w.add_document(key=u("a"), value=u("alfa bravo bear charlie delta"))
w.add_document(key=u("a"), value=u("boggle echo render rendering renders"))
w.commit()
r = ix.reader()
qp = QueryParser("value", ix.schema)
def words(terms):
z = []
for t in terms:
assert t[0] == "value"
z.append(t[1])
return " ".join(sorted(z))
q = qp.parse(u("b*"))
ts = q.existing_terms(r)
assert_equal(ts, set())
ts = q.existing_terms(r, expand=True)
assert_equal(words(ts), "bear boggle bravo")
q = qp.parse(u("[a TO f]"))
ts = q.existing_terms(r)
assert_equal(ts, set())
ts = q.existing_terms(r, expand=True)
assert_equal(words(ts), "alfa bear boggle bravo charlie delta echo")
q = query.Variations("value", "render")
ts = q.existing_terms(r, expand=False)
assert_equal(ts, set())
ts = q.existing_terms(r, expand=True)
assert_equal(words(ts), "render rendering renders")
开发者ID:ChimmyTee,项目名称:oh-mainline,代码行数:35,代码来源:test_queries.py
示例18: test_pinpoint
def test_pinpoint():
domain = u("alfa bravo charlie delta echo foxtrot golf hotel india juliet "
"kilo lima mike november oskar papa quebec romeo sierra tango")
schema = fields.Schema(text=fields.TEXT(stored=True, chars=True))
ix = RamStorage().create_index(schema)
w = ix.writer()
w.add_document(text=domain)
w.commit()
assert ix.schema["text"].supports("characters")
with ix.searcher() as s:
r = s.search(query.Term("text", "juliet"), terms=True)
hit = r[0]
hi = highlight.Highlighter()
hi.formatter = highlight.UppercaseFormatter()
assert not hi.can_load_chars(r, "text")
assert hi.highlight_hit(hit, "text") == "golf hotel india JULIET kilo lima mike november"
hi.fragmenter = highlight.PinpointFragmenter()
assert hi.can_load_chars(r, "text")
assert hi.highlight_hit(hit, "text") == "ot golf hotel india JULIET kilo lima mike nove"
hi.fragmenter.autotrim = True
assert hi.highlight_hit(hit, "text") == "golf hotel india JULIET kilo lima mike"
开发者ID:JunjieHu,项目名称:dl,代码行数:25,代码来源:test_highlighting.py
示例19: test_numeric
def test_numeric():
schema = fields.Schema(id=fields.ID(stored=True),
integer=fields.NUMERIC(int),
floating=fields.NUMERIC(float))
ix = RamStorage().create_index(schema)
w = ix.writer()
w.add_document(id=u("a"), integer=5820, floating=1.2)
w.add_document(id=u("b"), integer=22, floating=2.3)
w.add_document(id=u("c"), integer=78, floating=3.4)
w.add_document(id=u("d"), integer=13, floating=4.5)
w.add_document(id=u("e"), integer=9, floating=5.6)
w.commit()
with ix.searcher() as s:
qp = qparser.QueryParser("integer", schema)
q = qp.parse(u("5820"))
r = s.search(q)
assert len(r) == 1
assert r[0]["id"] == "a"
with ix.searcher() as s:
r = s.search(qp.parse("floating:4.5"))
assert len(r) == 1
assert r[0]["id"] == "d"
q = qp.parse("integer:*")
assert q.__class__ == query.Every
assert q.field() == "integer"
q = qp.parse("integer:5?6")
assert q == query.NullQuery
开发者ID:JunjieHu,项目名称:dl,代码行数:33,代码来源:test_fields.py
示例20: test_decimal_numeric
def test_decimal_numeric():
from decimal import Decimal
f = fields.NUMERIC(int, decimal_places=4)
schema = fields.Schema(id=fields.ID(stored=True), deci=f)
ix = RamStorage().create_index(schema)
# assert f.from_text(f.to_text(Decimal("123.56"))), Decimal("123.56"))
w = ix.writer()
w.add_document(id=u("a"), deci=Decimal("123.56"))
w.add_document(id=u("b"), deci=Decimal("0.536255"))
w.add_document(id=u("c"), deci=Decimal("2.5255"))
w.add_document(id=u("d"), deci=Decimal("58"))
w.commit()
with ix.searcher() as s:
qp = qparser.QueryParser("deci", schema)
q = qp.parse(u("123.56"))
r = s.search(q)
assert len(r) == 1
assert r[0]["id"] == "a"
r = s.search(qp.parse(u("0.536255")))
assert len(r) == 1
assert r[0]["id"] == "b"
开发者ID:JunjieHu,项目名称:dl,代码行数:26,代码来源:test_fields.py
注:本文中的whoosh.filedb.filestore.RamStorage类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论