gpt4 book ai didi

python - 如何将 StandardAnalyzer 与 TermQuery 一起使用?

转载 作者:行者123 更新时间:2023-11-28 17:55:03 26 4
gpt4 key购买 nike

我正在尝试生成类似于 lucene 中的 QueryParser 所做的事情,但没有解析器,即通过 StandardAnalyzer 运行一个字符串,将其标记化并在 BooleanQuery 中使用 TermQuery:s 来生成查询。我的问题是我只从 StandardAnalyzer 获得 Token:s,而不是 Term:s。我可以通过使用 Token.term() 从中提取字符串来将 token 转换为术语,但这仅适用于 2.4.x,而且看起来是倒退的,因为我需要第二次添加该字段。使用 StandardAnalyzer 生成 TermQuery 的正确方法是什么?

我正在使用 pylucene,但我想答案对于 Java 等是相同的。这是我想出的代码:

from lucene import *
def term_match(self, phrase):
query = BooleanQuery()
sa = StandardAnalyzer()
for token in sa.tokenStream("contents", StringReader(phrase)):
term_query = TermQuery(Term("contents", token.term())
query.add(term_query), BooleanClause.Occur.SHOULD)

最佳答案

获取 token 文本的既定方法是使用 token.termText() - 该 API 一直存在。

是的,您需要为 AnalyzerTerm 指定一个字段名称;我认为这被认为是正常的。 8-)

关于python - 如何将 StandardAnalyzer 与 TermQuery 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1390088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com