我怎么能包括在嗖查询撇号(')?例如(这是):
tws_fileName.tws_query_index( 'that's' )
因为上面提到的查询不工作,也不做以下
tws_fileName.tws_query_index( "that's" )
因为所有的标点是从由RegexTokenizer
.StandardAnalyzer
的"that's all, folks!"
索引剥离被索引为[that,s,all,folks]
你不能在默认情况下做到这一点
您可以通过两种规避这样的:
KEYWORD
代替TEXT
领域,因为它不使用RegexTokenizer
,但你不能做一个关键字短语现场搜索。TEXT
场与StandardAnalyzer
和一个自定义RegexTokenizer
正则表达式。在下面的例子中,经修饰的正则表达式接受撇号为令牌的有效部分。 from whoosh import fields, analysis
myanalyzer = analysis.StandardAnalyzer(expression=r'[\w\']+(\.?\w+)*')
schema = fields.Schema(myfield=fields.TEXT(analyzer=myanalyzer))
在myfield
任何撇号现在将令牌保留:[that's, all, folks]
。如果您在提交查询作为"that's"
或'that\'s'
,你会得到一个匹配。但是,因为没有这样的令牌"that"
搜索将不再能够找到这份文件。