lucene - Sitecore 7 ContentSearch API 是否会从查询中删除停用词?

标签 lucene sitecore sitecore7

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

但是如果我去掉“of”和“the”,那么我正在搜索“aftermath First World War”。我会拿回预期的文件。

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

谢谢 亚当

最佳答案

您可以配置 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/

关于lucene - Sitecore 7 ContentSearch API 是否会从查询中删除停用词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21583891/

相关文章:

java - 为什么 .doc 文件可以通过 Lucene 建立索引,而 .docx 文件无法建立索引?

solr - 如何在 Apache Solr 的文本字段中仅索引文档内容而不索引文档属性

C# Sitecore 获取继承模板

sitecore - 将配置文件属性映射到选项集或选项列表属性

solr - lucene 如何与 Neo4j 配合使用

lucene - .NET 站点上的 Solr

sitecore - 如何在Sitecore中动态创建WizardFormPage?

workflow - 从 Sitecore 工作流程向具有特定角色的所有用户发送电子邮件

asp.net-mvc - Sitecore MVC - 如何处理页面上的多个表单

c# - 从自定义 sitecore 7 索引中删除记录