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

2023-11-26

我找不到任何使用新的 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。

Thanks.


您可以扩展 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); 
} 
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用新的 Sitecore.Search API 进行排序/过滤 的相关文章

  • 将数据从一个子布局发送到 sitecore 中的另一个子布局

    我很难在 Sitecore 7 中构建过滤系统 我有 2 个子布局 位于页面的同一级别 子布局 A 是一个侧边栏 其中包含复选框列表 并具有一个用所选值填充列表的事件 子布局 B 显示一组项目 我想做的是将填充的列表从子布局 A 发送到子布
  • 实施 Sitecore Multisite Robots.txt 文件

    如何为同一 Sitecore 解决方案上托管的每个网站实现不同的 robots txt 文件 我想从 sitecore 项目中动态读取 robots txt 您需要执行以下步骤 1 创建并实现您的自定义通用 ashx 处理程序 2 在 we
  • 无法通过 API 访问 Sitecore 项目字段

    我已向现有数据模板添加了一个包含几个新字段的新部分 当以普通用户帐户登录时 这些字段会正确显示 但是 当使用 API 访问字段时 item Fields FieldName 始终返回 NULL 我尝试过的事情 发布项目和相应的数据模板 授予
  • Sitecore 中的常规链接

    我是 Sitecore 的新手 我创建了一个页面模板 并为 常规链接 类型的 URL 添加了一个字段 我为链接文本创建了另一个字段 这是该项目中的标准做法 我只是想在我的用户控件中显示链接 但我无法让它工作 这应该很简单 但我在兜圈子 这是
  • 如何以编程方式在 sitecore 中设置 Treelist 的值

    我有一个职位描述页面 我正在以编程方式向其添加值 其中一个字段是 Office Locations 数据类型为 Treelist 如何将值添加到树列表以便我可以设置办公位置 Sitecore Treelist以管道分隔形式存储所选项目的 i
  • 如何创建更复杂的 Lucene 查询字符串?

    这个问题是从this https stackoverflow com questions 532365 how to get more out of lucene net问题 我的询问有两个方面 但因为两者都是相关的 所以我认为将它们放在一
  • Sitecore 与 LDAP - 以编程方式进行身份验证

    我正在 Sitecore 中创建一个应用程序 我只希望用户可以通过直接 URL 来使用它 我希望针对 LDAP 进行身份验证 我尝试直接进入应用程序并让它重定向到自动登录页面并将我重定向到应用程序 但它没有这样做 相反 它带我进入了 Sit
  • 如何检查 Lucene IndexWriter 实例是否有效/打开?

    抱歉这个简单的问题 但似乎没有任何明显的方法 根据文档 建议保留单个实例IndexWriter存储在内存中 可以一次又一次地用于更新 而不是为每次更改打开和关闭一个内存 这要昂贵得多 然而 文档还指出IndexWriter如果发生异常 例如
  • 在 Sitecore MVC 中的视图中获取媒体 url

    我有一个存储在媒体库中的 mp3 文件 它在项目的媒体字段中被引用 我可以通过在 Web 表单或类中执行 Sitecore Resources Media MediaManager GetMediaURL 来获取 URL 但是如何在 MVC
  • 使用 SQL Server 配置 Lucene.Net

    有人使用 Lucene NET 而不是使用 sql server 自带的全文搜索吗 如果是这样 我会对你如何实现它感兴趣 例如 您是否编写了一个每小时查询数据库然后将结果保存到 lucene net 索引的 Windows 服务 是的 我已
  • Sitecore 文件夹和 IIS 权限

    设置或移动 Sitecore 解决方案时 您必须记住设置正确的文件夹权限和 IIS 权限 它类似于此处的第 3 3 3 2 3 3 3 9 节 http sdn sitecore net Products Sitecore 20V5 Sit
  • 是否可以迭代 Lucene 索引中存储的文档?

    我有一些文档存储在带有 docId 字段的 Lucene 索引中 我想获取存储在索引中的所有 docId 还有一个问题 文档数量约为 300 000 因此我希望以大小为 500 的块获取此 docId 是否可以这样做 IndexReader
  • 如何解决有关 Sitecore 培训网站的登录/数据库丢失错误?

    我在访问 Sitecore 培训网站时收到以下错误 应用程序中的服务器错误 无法打开登录请求的数据库 SiteCoreTrainingSitecore Core 登录失败 用户 sitecore 登录失败 描述 执行当前 Web 请求期间发
  • 在 Lucene 中正确索引纬度和经度值

    我正在使用 Lucene API 开发 给定半径内基于 美国的最近城市搜索 功能 我在 Lucene 中索引城市的纬度和经度值 如下所示 doc Add new Field latitude paddedLatitude Field Sto
  • lucene.net 排序不起作用访问冲突

    我正在尝试在 lucene 中对结果进行排序 但是我不断收到此错误 Search dll 中发生 System AccessViolationException 类型的未处理异常 附加信息 尝试读取或写入受保护的内存 这通常表明其他内存已损
  • 设置 FieldRenderer 的 Item 或 DataSource 属性的好方法是什么?

    场景是我有很多 FieldRenderer 这些应该从不同的地方输出数据 一些来自项目 X 另一些来自项目 Y 并且应该输出项目 Z 的属性 假设我有公共财产ItemX我想从中输出一个属性 以下任何一个都可以 但我没有得到他们中任何一个的输
  • 避免在重建期间删除当前的 Lucene.NET 索引

    我是 Lucene NET 的新手 但我正在使用一个开源工具 http trac sitecore net AdvancedDatabaseCrawler 为Sitecore CMS http www sitecore net它使用 Luc
  • 在 lucene.net 中,我们可以在不给出字段名称的情况下搜索内容吗?它会搜索所有已索引的字段吗?

    在 lucene net 中 我们可以在不给出字段名称的情况下搜索内容 并且它将搜索所有已索引的字段 如果不提供字段名称 则无法搜索内容 但是您可以使用 MultiFieldQueryParser 在所有可用字段中进行搜索 E g Dim
  • 检查当前语言是否存在项目?

    我有一个 Sitecore 解决方案 其中启用了 3 种不同的语言 页面顶部有每种语言的链接 单击此链接后 您将获得当前所在页面 采用所选语言 但并非所有页面都被翻译成所有语言 因此 如果我站在英语页面 x 上 并且此页面仅提供英语和德语版
  • Lucene.NET:如何使用BlockJoinQuery?

    我正在尝试使用 Lucene NET 4 8 进行关系搜索 实际上我使用最新消息来源 https github com apache lucenenet 依照指示这个帖子 http blog mikemccandless com 2012

随机推荐

  • RODBC 在 sqlQuery() 的连接中使用 Data.Frame

    有没有办法使用 sqlQuery 在 JOIN 条件下使用 data frame 我正在使用 RODBC 连接到 SQL Server 并且需要根据 R 中已有的 data frame 限制初始结果集 因此它仅返回 200 000 条记录中
  • 是否可以以某种方式在表格行周围设置边框?

    我试图在特定的表格行周围添加边框 当鼠标进入该行时 它会改变它的颜色 但是 除非使用 否则我根本看不到边框border collapse collapse 但我必须避免边框折叠 因为在某些情况下 边框在左侧 右侧和底部可见 但在顶部不可见
  • 如何防止 NUL 字节出现在我的 GIT 存储库和提交消息中?

    我有一个相对干净的 Mac OS X Mavericks 10 9 安装 运行 git 版本 1 8 5 1 我的文件位于已安装的 SMB 共享上 并且我无法再正常使用我的 GIT 存储库 因为 NULL 字节 0 不断出现在我的所有版本控
  • 如何用线性无关列在矩阵中编写线性相关列?

    我有一个很大的 mxn 矩阵 并且我已经确定了线性相关的列 但是 我想知道 R 中是否有一种方法可以根据线性独立列来编写线性相关列 由于它是一个很大的矩阵 因此不可能基于检查来完成 这是我拥有的矩阵类型的玩具示例 gt mat lt mat
  • F# 在同一项目的另一个文件中定义/使用类型/模块

    希望这将是一件容易的事 我有一个 F 项目 最新的 F CTP 其中包含两个文件 Program fs Stack fs 在 Stack fs 中 我有一个简单的命名空间和类型定义 Stack fs namespace Col type S
  • 执行库(pkg)后执行包中的函数

    您好 我有一个包 其中包含一个使用 gWidgets 制作 gui 的函数 有没有办法让我在包加载时执行该函数 以便立即出现界面 我想是这样的 OnAttach lt function libname pkgname gui 会起作用 但我
  • C++ ostream 输出操作

    基本上它应该以这种格式列出所有矢量坐标 x y z 但目前它确实像这样 x y z 最简单的方法是在 for 循环中使用 if 但是我可以从 out 变量中减去一小段字符串吗 my code template
  • 为什么我不能设置多个cookie

    我正在尝试设置多个 cookie 但它不起作用 if type ngx header Set Cookie table then ngx header Set Cookie end table insert ngx header Set C
  • 安卓6蓝牙

    我升级到 Android 6 我使用蓝牙的应用程序无法与这个新的 API 版本配合使用 Play 商店上的应用程序也有同样的问题 蓝牙 spp 工具专业版 查看蓝牙是否正常工作的好应用程序 但无法发现设备 问题似乎出在蓝牙发现中 Bluet
  • Chrome 硒中内存不足 - 没有抛出错误[重复]

    这个问题在这里已经有答案了 我有一个使用 Chrome 的 selenium 脚本 它运行了很长时间 最终 浏览器内存不足 我收到 错误代码 内存不足 页面 问题是 Python 中没有抛出错误 所以我不知道如何检测错误何时发生 代码最终会
  • 为什么 __builtin_popcount 比我自己的位计数函数慢?

    在编写了自己的位计数例程后 我偶然发现了 gcc 的 builtin popcount 但是当我切换到 builtin popcount 时 我的软件实际上运行得更慢 我在 Unbutu 上使用 Intel Core i3 4130T CP
  • 在 android Kitkat 中找不到 android.support.v4.content.FileProvider 类

    我在用FileProvider在我的应用程序中 像往常一样我宣布
  • 无法从“werkzeug”导入名称“secure_filename”

    我试图从 werkzeug utils 导入 secure filename 但出现错误 它在我的基本虚拟环境下运行良好 code Flask packages from flask import Flask render template
  • {{#each}} 内的车把助手

    我尝试在 a 中调用已注册的车把助手 each 环形 不幸的是 Ember js 会抱怨 因为它试图将助手解析为控制器的属性而不是助手 Handlebars registerHelper testHelper function name r
  • 网址的字符限制是多少[重复]

    这个问题在这里已经有答案了 URL 的字符限制是多少 尤其是当 URL 由表单的 GET 方法形成时 根据微软的说法 现在是 2048 年 自从他们发明了互联网 以及光明 黑暗和 Linux 以来 他们是对的 或 由于 IE 强制使用较低的
  • 如何在android中以编程方式录制特定声音的视频?

    我已经创建了在我的应用程序中录制视频的功能 当我播放一首歌曲时 该歌曲会与视频一起录制并创建一个视频文件 类似于 dubshmash 应用程序 现在我面临的问题是其他声音 例如附近的声音 也会被记录下来 歌曲文件录制在视频录制屏幕中 当视频
  • 如何保持 Spring Data JPA 或 Hibernate 中“in”子句中提供的顺序[重复]

    这个问题在这里已经有答案了 我有一个非常简单的查询 它根据 in 子句检索值 作为 in 参数出现的列表已适当排序 Query Query value select i from ItemEntity i where i secondary
  • 如何删除早于 X 且未使用的 docker 映像

    我的服务器磁盘空间不足docker images显示了 6 个月前的一些容器 但也有 2 年前的旧容器 我想删除所有 8 个月以上的 我可以添加什么魔法docker rmi MAGIC 那会完成这个吗 您可以使用docker images
  • 如何使用 Retrofit android 将 JSON 数据作为 Body 发送

    我正在尝试在服务器上发布以下 JSON 数组 order orderid 39 dishid 54 quantity 4 userid 2 orderid 39 dishid 54 quantity 4 userid 2 我在下面使用这个
  • 如何使用新的 Sitecore.Search API 进行排序/过滤

    我找不到任何使用新的 Sitecore Search API 进行排序和过滤的方法 Lucene提供了以下方法 Search Query query Filter filter Search Query query Sort sort Se