gpt4 book ai didi

java - 在lucene中搜索时需要创建term shingles

转载 作者:行者123 更新时间:2023-12-01 15:39:48 25 4
gpt4 key购买 nike

我有一个与 shingleAnalyzer 相关的问题,我想创建搜索词的 shingles,同时将它们提供给 lucene 进行搜索

String term = "new york";
String[] fields = {"city", "city_desc"};
ShingleAnalyzerWrapper shingleWrapper = new ShingleAnalyzerWrapper(new StandardAnalyzerNew(Version.LUCENE_30, new File(GlobalData.GENERAL_STOPWORD_FILE)) , 5);

MultiFieldQueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30,
fields,
shingleWrapper
);
Query query = queryParser.parse(term);
System.out.println("query : " + query.toString());
output: (city : new city_desc: new), (city : york city_desc : york)

这里的术语带状疱疹无法生成,我想要输出如下所示:

output : (city : new city_desc: new), (city : york city_desc : york), (city: new york, city_desc : new york)

有什么想法吗?我该怎么做?

最佳答案

您可以使用重写函数 getFieldQuery(String, String, boolean) 创建从 MultiFieldQueryParser 派生的查询解析器,其中术语将统一在 shingles 中,并且将创建来自这些 shingles 的查询。如果它仍然是实际的,我可以获得示例代码来执行此操作

关于java - 在lucene中搜索时需要创建term shingles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246282/

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