使用整个单词在新的 Sitecore ContentSearch 中进行搜索

标签 search lucene sitecore

我正在使用新的 Sitecore 搜索,我遇到的问题是结果与我的搜索词无关。

例如,搜索“lies”将找到“applies”。这不是我想要的。

这是我正在执行的搜索示例(简化)。这是对 SearchResultItem 的“Content”属性上的“Contains”的直接 LINQ 检查,很可能不是我应该做的。恰好我在网上找到的示例实际上就是这样做的。

我的代码示例(简化)。在这里,我将搜索语句分解为单独的关键字。顺便说一句,我正在寻找一种首先显示完整句子匹配的方法。

        using (var context = ContentSearchManager.GetIndex("sitecore_web_index").CreateSearchContext())
        {
            var results = context.GetQueryable<SearchResultItem>()
                .Filter(i => i.Path.StartsWith(Home.Paths.FullPath))
                .Filter(GetTermPredicate(Term));

           // use results here
        }



    protected Expression<Func<SearchResultItem, bool>> GetTermPredicate(string term)
    {
        var predicate = PredicateBuilder.True<SearchResultItem>();
        foreach (var tempTerm in term.Split(' '))
        {
            predicate = predicate.And(p => p.Content.Contains(tempTerm));
        }
        return predicate;
    }

提前谢谢您!!

最佳答案

好吧。我从 Sitecore 支持部门获得了帮助。

在我的 Sitecore 版本中,我可以使用以下内容来实现搜索整个单词而不是部分单词:

而不是:

predicate = predicate.And(p => p.Content.Contains(tempTerm));

使用

predicate = predicate.And(p => p.Content.Equals(tempTerm));

问题已解决。

关于使用整个单词在新的 Sitecore ContentSearch 中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23021785/

相关文章:

c# - 如何将媒体库图像从 sitecore 下载到本地文件夹

sitecore - 查找 sitecore 6.2.0 中使用通用子布局的所有项目

search - Sitecore 索引搜索

git - 机器人/蜘蛛会克隆公共(public) git 存储库吗?

web-services - Solr查询语法

php - 使用 MySQL 和 PHP 进行特定模式搜索 - 应该怎么做?

java - Apache Lucene - S3 目录

Lucene 模糊搜索客户姓名和部分地址

search - 拼凑不导出数据到 Elasticsearch

search - 最适合前缀匹配搜索的数据结构