【问题标题】:Cannot search with keyword 'with' in LINQ?无法在 LINQ 中使用关键字“with”进行搜索?
【发布时间】:2016-01-09 11:02:41
【问题描述】:

目前我正在使用 LINQ 为 Sitecore 搜索内容编写查询。奇怪的是,我无法使用关键字“with”搜索内容。大家有这个想法吗?

using (var searchContext = index.CreateSearchContext())
        {
            var result = searchContext.GetQueryable<SearchResultItem>()
                            .Where(w =>
                                w.Content.Contains(searchText)
                            );
        }

结果是空的,我也尝试使用运算符'like'(w.Content.Lile)但结果为空。

【问题讨论】:

  • 试试这个:...w.Content.Contains(searchText,StringComparison.OrdinalIgnoreCase)

标签: linq sitecore lucene.net sitecore8


【解决方案1】:

代码看起来不错,我能看到的唯一导致问题的是案例问题。试试这个:

x.Content.ToUpper().Contains(searchText.ToUpper())

另外,不确定 Lucene.Net 的实现,但对我来说这看起来像简单的 Linq-SQL 或 EF,并且 .Contains() 方法是在本地执行的,而不是远程执行的。

【讨论】:

  • 谢谢!它似乎对 Lucene.net 无效。
【解决方案2】:

我不熟悉 Lucene.net / sitecore,但有可能“with”是一个停用词,Lucene 在索引文档时将其删除。尝试在您的查询中包含一些其他关键字,看看您是否得到结果。有关停用词的更多详细信息,请参阅What is the default list of stopwords used in Lucene's StopFilter?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多