小编Gat*_*rdo的帖子

Sitecore搜索Predicate Builder多个关键字搜索,提升功能无法正常工作

我有sitecore pages/lucene文档,包含以下字段:

  • 标题
  • 文件名
  • 内容
  • 文件内容

我正在创建搜索这些并具有以下要求:

  • 应首先返回包含标题字段中整个短语的匹配.
  • 包含文件名字段中的整个短语的命中应该返回第二个.
  • 包含内容中整个短语的点击数应返回第三位
  • 包含文件内容中的整个短语的命中应该返回第四
  • 包含标题字段所有关键字(按任意顺序)的匹配应返回第五位
  • 包含文件名字段所有关键字(按任意顺序)的命中应返回第六位
  • 包含内容中所有关键字(按任意顺序)的匹配应返回第七.
  • 包含文件内容所有关键字(按任意顺序)的匹配应返回第八.

这是我得到的:

    public static Expression<Func<T, bool>> GetSearchTermPredicate<T>(string searchTerm) 
        where T : ISearchableItem
    {
        var actualPhrasePredicate = PredicateBuilder.True<T>()
            .Or(r => r.Title.Contains(searchTerm).Boost(2f))
            .Or(r => r.FileName.Contains(searchTerm).Boost(1.5f))
            .Or(r => r.Content.Contains(searchTerm))
            .Or(r => r.DocumentContents.Contains(searchTerm));

        var individualWordsPredicate = PredicateBuilder.False<T>();

        foreach …
Run Code Online (Sandbox Code Playgroud)

lucene lucene.net sitecore predicatebuilder sitecore8

7
推荐指数
1
解决办法
976
查看次数

使用Glass.Mapper将Droplist项映射到complextype

我创建了两个Sitecore templatates MenuItem和MainNavigation.我创建了两个基于这些模板的接口:

 [SitecoreType(TemplateId = "{C824E484-F4A6-475C-AFAF-308FF4BBA5A9}", AutoMap = true)]
public interface IMenuItem
{
    string Title { get; set; }
    IEnumerable<IMenuItem> SubMenuItems { get; set; }
}
[SitecoreType(TemplateId = "{68947CC0-7658-4188-889D-4E88B84F3BC2}", AutoMap = true)]
public interface IMainNavigation
{        
    IMenuItem MenuHeaderItem { get; set; }

    IEnumerable<IMenuItem> MenuItems { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

来自MultiList的映射MenuItem正在工作.Droplist中的映射MenuHeaderItem不是.在模板中,我在数据源中提供了一个查询,因此只能选择MenuItems.

如何使此映射工作?

我已经尝试过v4.0.5.54,现在我已经更新到版本4.2.1.188

sitecore glass-mapper

4
推荐指数
1
解决办法
1267
查看次数

WFFM - Capcha - 值不能为空

我正在使用Sitecore 8更新3,目前我添加了一个capcha到WFFM表单并按下音频,但显示错误如下:

[ArgumentNullException: Value cannot be null.
Parameter name: input]

       System.IO.BinaryReader..ctor(Stream input, Encoding encoding, Boolean leaveOpen) +13905648
       Sitecore.Form.Core.Media.Wave.Concat(StreamList inStreams, BinaryWriter to) +193
       Sitecore.Form.Core.Web.CaptchaAudionHandler.DoSpeech(String text, String fileName) +452
       Sitecore.Form.Core.Web.CaptchaAudionHandler.ProcessRequest(HttpContext context) +618
       Sitecore.Form.Core.Pipeline.RequestProcessor.CaptchaResolver.ProcessRequest(HttpContext context) +358
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +508
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +92
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

更新: 在我使用名为Sitecore.Support.432676(Sitecore Climber的建议)的软件包之后.我在CaptchaField.cshtml文件中更新了javascript,音频现在正在运行.

<script type="text/javascript">
    $scw(document).ready(function () {
        $scw('.selector-field-captcha-play').click(
            function (event) {
                event.preventDefault();
                var container = $scw(".field-captcha-audio");
                container.empty();
                container.append('<audio src="' + '@audioHandlerUrl' + "&nocache=" + Date.now() + '" autoplay="autoplay"><embed src="' + '@audioHandlerUrl' + "&nocache=" + Date.now() + '" width="180" …
Run Code Online (Sandbox Code Playgroud)

sitecore sitecore8

2
推荐指数
1
解决办法
354
查看次数