[英]Python Whoosh not accepting single character
我正在嘗試解析具有文本加數字的查詢。
示例:Apple iphone 6結果:
Results for And([Term('title', u'apple'), Term('title', u'iphone')])
而蘋果iphone 62會導致:
Results for And([Term('title', u'apple'), Term('title', u'iphone'), Term('title', u'62')])
為什么不接受一位數字?
默認情況下,所有帶有單字符的單詞在Whoosh中均被視為停用詞,並被忽略。 這意味着將忽略所有字母和數字。
停用詞是在處理自然語言數據(文本)之前或之后過濾掉的詞。 (參考文獻)
您可以檢查StopFilter
默認情況下是否將minsize = 2
添加到預定義集中。
class whoosh.analysis.StopFilter(
stoplist=frozenset(['and', 'is', 'it', 'an', 'as', 'at', 'have', 'in', 'yet', 'if', 'from', 'for', 'when', 'by', 'to', 'you', 'be', 'we', 'that', 'may', 'not', 'with', 'tbd', 'a', 'on', 'your', 'this', 'of', 'us', 'will', 'can', 'the', 'or', 'are']),
minsize=2,
maxsize=None,
renumber=True,
lang=None
)
因此,您可以通過重新定義架構並刪除StopFilter
或將其與minsize = 1
使用來解決此問題:
from whoosh.analysis import StandardAnalyzer
schema = Schema(content=TEXT(analyzer=StandardAnalyzer(stoplist=None)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.