我试图在特定范围内按值查找文档。 官方文档没有给出不同类型的字段和搜索方法的示例。 任何聪明人都可以给我一个更多示例和应用程序的链接?任何提示?
谢谢!
这是我的代码,
from whoosh.index import create_in
from whoosh.fields import *
from whoosh.qparser import QueryParser
schema = Schema(temperature=NUMERIC(float, stored=True))
ix = create_in("indexdir", schema)
writer = ix.writer()
writer.add_document(temperature = 32.3)
writer.commit()
with ix.searcher() as searcher:
query = QueryParser("temperature", ix.schema).parse("temperature:>20.0") ## should be something like this
print(searcher.search(query)[0])
答案 0 :(得分:1)
范围查询语法为[START to END]
,例如START
和END
是表示范围界限的数字。如果没有定义结束,则[ START to]
。如果没有定义任何开始,则[to END]
。
在您的情况下,如果温度高于20.0,请使用temperature:[20.0 to]
。 to
和]
之间没有空格。
query = QueryParser("temperature", ix.schema).parse("temperature:[ 20 to 1000 ]")
您还可以使用whoosh.query.NumericRange
:
类whoosh.query.NumericRange(fieldname,start,end,startexcl = False,endexcl = False,boost = 1.0,constantscore = True)
query = NumericRange(u'temperature', 20.0, None)