我遇到了“带搜索的多列表”字段的问题。这是Sitecore 8实例。该字段使用这样的查询从名为“agents_master_index”的lucene搜索索引中获取列表:
TemplateFilter={3EA2CB30-0D04-4D73-9282-0103D8F34074} & StartSearchLocation={95A07C68-36B6-4D0D-AAE3-A2BFBF40C2C6}&SortField=Agent Name
我有多个问题: 1)当我打开基于此模板的项目时,它非常慢但最终会在列表的第一页上返回一些结果,但是分页和转到项目按钮不起作用且字段未显示数字页。
2)如果我尝试模板的标准值项,则不会发生上述问题,但如果单击“下一页”按钮,则不返回任何内容。 我查看了搜索日志文件,看看发生了什么。当它成功返回第一页结果时,它会执行以下查询:
4832 12:32:34 INFO ExecuteQueryAgainstLucene (agents_master_index): +_datasource:sitecore +(+(+_path:11111111111111111111111111111111 +_latestversion:1) +(+_path:95a07c6836b64d0daae3a2bfbf40c2c6 +_template:3ea2cb300d044d7392820103d8f34074)) - Filter :
但要返回第二页结果,多列表会运行此查询:
http://localhost/sitecore/shell/Applications/Buckets/Services/Search.ashx?fromBucketListField=*&sort=Agent%20Name&template={3EA2CB30-0D04-4D73-9282-0103D8F34074}&location=95a07c6836b64d0daae3a2bfbf40c2c6&pageSize=10&pageNumber=2&sc_content=master
返回一个类似JSON的结果,它基本上是空的:
({"CurrentPage":1,"Location":"current item","PageNumbers":0,"SearchCount":"0","SearchTime":"04.3539","facets":null,"items":[],"launchType":"contenteditor:launchtab","ContextData":[],"ContextDataView":[]})
并且在搜索日志文件中实际执行的是:
4832 12:28:05 INFO Search Query : +(_content:* _name:* _displayname:*) +_template:3ea2cb300d044d7392820103d8f34074 +_path:95a07c6836b64d0daae3a2bfbf40c2c6
4832 12:28:05 INFO Search Index : sitecore_index
4832 12:28:05 INFO Search Took : 4346ms
我不明白为什么要检索第二页,查看sitecore_index而不是“agents_master_index”。这有什么不对?我应该修复我的查询吗?如何强制它选择正确的lucene索引(如果这是所有这些令人困惑的问题背后的原因?
非常感谢任何帮助或见解。
修改
顺便说一句,StartSearchLocation指的是一个项目桶。 “agents_master_index”指的是其定义中的相同位置。
更新
好的,到目前为止,我已经设法解决了第二个问题。在与Richard交换了一些评论之后,我得出结论(至少在Sitecore 8中)内容编辑器期望在“Root”项存在的同一索引中找到我们想要在多列表组件中搜索的项目({11111111-1111-1111-1111 -111111111111})所以我刚刚将“agents_master_index”中的相同抓取工具添加到“sitecore_index”并且它有效!
但是,这仍然只适用于模板的标准值项。所以第一个问题还没有解决。换句话说,当单击第二页或对基于该模板创建的项目进行任何搜索时,多列表不起作用,它只能在模板本身上正常工作(标准值项目)
我遇到了这个Fix for Sitecore Multilist and TreeList with Search Bug,看起来和我的问题非常相似,我试过了,但它对我不起作用:(