我试图在java/ai/vespa/示例路径中添加搜索程序代码。搜索程序代码基本上会更改Ngram searcher的OR值。我将这个搜索程序代码路径引用添加到services.xml
<search>
<chain id='ORgram' inherits='vespa'
excludes='com.yahoo.search.querytransform.NGramSearcher'>
<searcher bundle='gram-searcher' id='ai.vespa.examples.OrNGramSearcher'/>
</chain>
</search>但是,当我试图将这个searchChain添加到我的查询中时,它给了我一个错误。
**'message': "No search chain named 'ORgram' was found"**NGram搜索器没有被排除在结果之外,新的或图搜索器也没有被应用到结果中。
搜索者代码是:-
package ai.vespa.example;
import com.yahoo.search.Query;
import com.yahoo.prelude.query.CompositeItem;
import com.yahoo.prelude.query.OrItem;
import com.yahoo.prelude.query.HasIndexItem;
import com.yahoo.search.querytransform.NGramSearcher;
import com.yahoo.language.Linguistics;
public class OrNGramSearcher extends NGramSearcher {
public OrNGramSearcher(Linguistics linguistics) {
super(linguistics);
}
@Override
protected CompositeItem createGramRoot(HasIndexItem term, Query query) {
return new OrItem();
}
}除此之外,我还遵循包含pom.xml的maven布局,在services.xml中使用的包id与pom.xml中的artifactID相同。
发布于 2022-10-18 07:52:20
确保你跑
mvn install在此之前
vespa deploy若要构建新应用程序包,请执行以下操作。
https://stackoverflow.com/questions/74107288
复制相似问题