我已经在umbraco中安装了用于网站搜索的ezsearch并将其呈现如下。
@Umbraco.RenderMacro("ezSearch", new {rootContentNodeId="-1", rootMediaNodeId="-1", indexType="CONTENT", searchFields= "bodyText", previewFields="null", previewLength="null", pageSize="null", hideFromSearchField="null", searchFormLocation="null"})
它不是搜索,总是给出显示结果。 可能是我在使用searchfields和prewiewfields做错了。 任何有这个想法的人请帮助我,我应该通过theough searchField和预览字段感谢你。
答案 0 :(得分:2)
我有完全相同的问题。
在日志中挖掘后,我发现ezsearch引导程序代码(在app_code中)在索引时导致错误,因为项目“contents”已经全部添加到索引中。
通过在EzSearchBootstrapper.cs中注释掉这些行,我的索引再次开始填充。
var combinedFields = new StringBuilder();
foreach (var keyValuePair in e.Fields)
{
combinedFields.AppendLine(keyValuePair.Value);
}
e.Fields.Add("contents", combinedFields.ToString());
答案 1 :(得分:1)
我正在运行Umbraco 7.2.4并且ezsearch在此之前的所有版本上都运行良好,但突然间在这个版本上出现了问题。我正在尝试一切,最后通过评论下面显示的一些查询构建代码让它工作,然后它开始工作。
显然这有问题......您可以尝试取消注释某些行以找到它确切的位置,但我想我现在就发布这个。
这是在ezsearch宏部分视图fyi。
@*
var contentPathFilter = model.RootContentNodeId > 0
? string.Format("__IndexType:{0} +searchPath:{1} -template:0", UmbracoExamine.IndexTypes.Content, model.RootContentNodeId)
: string.Format("__IndexType:{0} -template:0", UmbracoExamine.IndexTypes.Content);
var mediaPathFilter = model.RootMediaNodeId > 0
? string.Format("__IndexType:{0} +searchPath:{1}", UmbracoExamine.IndexTypes.Media, model.RootMediaNodeId)
: string.Format("__IndexType:{0}", UmbracoExamine.IndexTypes.Media);
switch (model.IndexType)
{
case UmbracoExamine.IndexTypes.Content:
query.AppendFormat("+({0}) ", contentPathFilter);
break;
case UmbracoExamine.IndexTypes.Media:
query.AppendFormat("+({0}) ", mediaPathFilter);
break;
default:
query.AppendFormat("+(({0}) ({1})) ", contentPathFilter, mediaPathFilter);
break;
}
*@
.....
@* // Rank content based on positon of search terms in fields
for (var i = 0; i < model.SearchFields.Count; i++)
{
foreach (var term in model.SearchTerms)
{
query.AppendFormat("{0}:{1}*^{2} ", model.SearchFields[i], term, model.SearchFields.Count - i);
}
}*@
答案 2 :(得分:0)
您是否看过documentation of EzSearch并尝试使用RTE中的宏而不是直接在Razor中使用它。在文档(PDF)中有一个称为配置的部分,您可以在此找到有关可以在EzSearch中完成的配置的一些信息。
为什么你把所有的参数都给出为null,它说可以做到这一点。我建议你看看文档,然后首先尝试使用
PreviewLength:
描述
@ Umbraco.RenderMacro( “ezSearch”)
没有任何参数。然后从那里逐个添加参数,看看它何时停止显示任何内容。
您是在Visual Studio中工作还是只在Umbraco后端工作,当您使用visual studio时,调试应用程序是一件好事,看它是否会抛出任何异常。这将被umbraco捕获并吞下。如果不使用Visual Studio,请查看Umbraco的日志记录,看看是否记录了某种错误。