gpt4 book ai didi

lucene.net - 如何使用新的Sitecore.Search API进行排序/过滤

转载 作者:行者123 更新时间:2023-12-04 13:34:25 25 4
gpt4 key购买 nike

我找不到使用新的Sitecore.Search API进行排序和过滤的方法。 Lucene提供以下方法:

Search(Query query, Filter filter)
Search(Query query, Sort sort)
Search(Query query, Filter filter, Sort sort)

但是我不认为Sitecore.Search API可以提供这些功能。我想念什么吗?有人可以说明如何使用新的Sitecore.Search API进行过滤和排序吗?还是我需要使用包装的 Searcher.Search(Query, Sort)来实现此目的?

我正在使用Sitecore 6.5。

谢谢。

最佳答案

您可以扩展IndexSearchContext使其具有接受Lucene.Net.Search.Sort对象的方法。我的团队成员之一发现了这个问题,这很干净。

public class SortableIndexSearchContext : IndexSearchContext 
{
public SortableIndexSearchContext(ILuceneIndex index)
{
Initialize(index, true);
}
public SearchHits Search(Query query, Sort sort)
{
return Search(query, SearchContext.Empty, sort);
}
public SearchHits Search(PreparedQuery query, Sort sort)
{
return new SearchHits(Searcher.Search(query.Query, sort));
}
public SearchHits Search(QueryBase query, Sort sort)
{
return Search(query, SearchContext.Empty, sort);
}
public SearchHits Search(string query, Sort sort)
{
return Search(query, SearchContext.Empty, sort);
}
public SearchHits Search(Query query, ISearchContext context, Sort sort)
{
return Search(Prepare(query, context), sort);
}
public SearchHits Search(QueryBase query, ISearchContext context, Sort sort)
{
return this.Search(Prepare(Translate(query), context), sort);
}
public SearchHits Search(string query, ISearchContext context, Sort sort)
{
return this.Search(Parse(query, context), sort);
}
}

关于lucene.net - 如何使用新的Sitecore.Search API进行排序/过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7314195/

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