【问题标题】:Does the Sitecore 7 ContentSearch API remove stop words from queries?Sitecore 7 ContentSearch API 是否会从查询中删除停用词?
【发布时间】:2014-02-05 17:12:48
【问题描述】:

我发现包含“of”、“and”、“the”等的搜索不会返回结果,因为 Lucene 已删除停用词。因此,如果我搜索标题为“第一次世界大战后果”的项目,我将得到零结果。

但如果我去掉“of”和“the”,那么我正在寻找“第一次世界大战之后”。我会取回预期的文件。

ContentSearch API 是否会从查询中删除停用词?这是可以配置 Lucene 删除的东西吗?还是应该在构建查询之前删除这些停用词?

谢谢 亚当

【问题讨论】:

    标签: lucene sitecore sitecore7


    【解决方案1】:

    您可以将 Sitecore 标准分析器配置为接受您自己的自定义停用词集。 使用停用词(每行一个停用词)创建一个文本文件,然后在 Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config 文件中进行以下配置更改

    <param desc="defaultAnalyzer" type="Sitecore.ContentSearch.LuceneProvider.Analyzers.DefaultPerFieldAnalyzer, Sitecore.ContentSearch.LuceneProvider">
      <param desc="defaultAnalyzer" type="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net">
        <param hint="version">Lucene_30</param>
          <param desc="stopWords" type="System.IO.FileInfo, mscorlib">
          <param hint="fileName">[FULL_PATH_TO_SITECORE_ROOT_FOLDER]\Data\indexes\stopwords.txt</param>
          </param>
      </param>
    </param>   
    

    进一步阅读:我已经写了一篇关于这个问题的博客文章,可能对http://blog.horizontalintegration.com/2014/03/19/sitecore-standard-analyzer-managing-you-own-stop-words-filter/

    有帮助

    【讨论】:

    • 网页链接即使回答了问题也不是好的答案。答案(包括相关代码)应包含在 SO 网站中。
    • Novocaine88,感谢您的评论,作为 SO 的新手,这肯定会有所帮助。
    • 有没有办法使用相对路径而不是 stopwords.txt 文件的绝对路径?我尝试过这样的事情,但它不起作用: $(dataFolder)/stopwords.txt
    【解决方案2】:

    我认为这与blog 的问题相同。

    您可以尝试按照博文中的步骤进行操作吗?

    其他选项可以是创建自定义分析器并将您的停用词列表提供给构造函数。 类似的东西:

    public class CustomAnalyzer : Lucene.Net.Analysis.Standard.StandardAnalyzer
    {
        private static Hashtable stopWords = new Hashtable()
        {
            {"of", "of"},
            {"stopword2", "stopword2"}
        }; 
        public CustomAnalyzer() : base(Lucene.Net.Util.Version.LUCENE_30, stopWords)
        {      
        }
    }
    

    修改后,您需要更改配置文件。关于 Analyzer 的一篇不错的博客文章,您可以找到 here。 P.S.:如果真的有效,我没有尝试我的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      相关资源
      最近更新 更多