【问题标题】:lucene.net, document boost not workinglucene.net,文档提升不起作用
【发布时间】:2014-07-02 04:40:11
【问题描述】:

我是一名初学者,正在使用 lucene.net 开发我的第一个项目,即地址搜索实用程序 lucene.net 3.0.3

使用标准分析器,查询分析器,(假设我有一个字段,存储和分析) - 样本数据:(每一行都是一个包含单个字段的文档) (邮政编码和街道列连接)

  • UB6 9AH Greenford Road 的东西
  • UB6 9AP Greenford Road 的东西
  • UB1 3EB Greenford Road 的东西
  • PR8 3JT Greenford Road 的东西
  • HA1 3QD 东西格林福德路
  • SM1 1JY 格林福德路某事

搜索

StringBuilder customQuery = new StringBuilder();
customQuery.Append(_searchFieldName + ":\"" + searchTerm + "\"^" + (wordsCount));

//这是用于词组匹配的

foreach (var word in words.Where(word => !string.IsNullOrEmpty(word)))
    {
        customQuery.Append(" +" + _searchFieldName + ":" + word + "*");
    }

// 这是每个单词的前缀匹配

查询查询 = _parser.Parse(customQuery.ToString());

_searcher.Search(查询,收集器);

以上所有(搜索)工作正常

问题

如果我搜索“格林福德路”, 我可能希望出现“SM1”的那一行(意味着我希望根据邮政编码优先处理结果)

我已经测试了 Query-Time-Boost 并且效果很好

但有时我可能会有一长串优先邮政编码(所以我不想遍历每个邮政编码并在查询时设置其优先级

我想要增加文档时间

但无论我设置什么文档提升(在索引时),它都不会影响我的搜索结果

doc.Add(new Field(SearchFieldName, SearchField, Field.Store.YES, Field.Index.ANALYZED));
if (condition == true)
{
   doc.Boost = 2; // or 5 or 200 etc (nothing works)
}

请帮忙

我试图理解相似性和评分,但其中的数学太多了......

请帮忙....

【问题讨论】:

    标签: sorting indexing lucene.net


    【解决方案1】:

    我自己最近遇到了这个问题,我认为这可能是由于通配符查询造成的(至少在我的情况下是这样)。这里有另一个帖子更好地解释了这个问题,并提供了一个可能的解决方案:

    Lucene .net Boost not working when using * wildcard

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多