使用Sitecore搜索解析lucene查询

时间:2015-03-23 22:35:55

标签: asp.net .net lucene sitecore

我正在使用Sitecore搜索数据库中的项目。

我想要做的是解析Lucene查询并使用标准Sitecore搜索返回结果。

我知道我可以使用QueryParser执行此操作,但我想坚持使用标准的Sitecore功能(如已有的索引sitecore_web_index),如果可能的话。

Sitecore是否具有这种可靠性?

2 个答案:

答案 0 :(得分:1)

你可以在Sitecore 7中使用Predicate Builder的强大功能。我不确定是否有一种真正简单的方法来进行解析,但是如果你使用PB和一些逻辑应该可以让你在哪里需要。

http://www.sitecore.net/learn/blogs/technical-blogs/sitecore-7-development-team/posts/2013/05/sitecore-7-predicate-builder.aspx

答案 1 :(得分:0)

在Sitecore 8.2中(也许也较新/较旧)

您可以使用QueryBuilder字段类型,并使用LinqHelper执行查询。这对Solr和Lucene都适用。

        var index = ContentSearchManager.GetIndex("sitecore_web_index");

        using (var context = index.CreateSearchContext())
        {
            var solrSearchContext = context as Sitecore.ContentSearch.SolrProvider.SolrSearchContext;
            var results =  Sitecore.ContentSearch.Utilities.LinqHelper.CreateQuery<SearchResultItem>(solrSearchContext, sourceItem["SearchQuery"]);              
        }

该方法将产生结果作为SearchResultItems的集合,您可以根据需要使用它们。