Sorting lucene.net,文档增强不起作用
我是一个初学者&用lucene.net开发我的第一个项目,即地址搜索工具lucene.net 3.0.3 使用标准分析器、查询解析器(假设我有一个字段,也存储和分析) -示例数据:(每一行都是带有单个字段的文档) (邮政编码和街道栏连接)Sorting lucene.net,文档增强不起作用,sorting,indexing,lucene.net,Sorting,Indexing,Lucene.net,我是一个初学者&用lucene.net开发我的第一个项目,即地址搜索工具lucene.net 3.0.3 使用标准分析器、查询解析器(假设我有一个字段,也存储和分析) -示例数据:(每一行都是带有单个字段的文档) (邮政编码和街道栏连接) UB6格林福德路9AH号 UB6格林福德路9号公寓 UB1格林福德路3B号 PR8格林福德路3JT号 格林福德路3号一楼 SM1 1JY某物格林福德路某物 搜索 StringBuilder customQuery = new StringBuilder()
- UB6格林福德路9AH号
- UB6格林福德路9号公寓
- UB1格林福德路3B号
- PR8格林福德路3JT号
- 格林福德路3号一楼
- 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 + "*");
}
//这是每个单词的前缀匹配
Query Query=_parser.Parse(customQuery.ToString())
_searcher.Search(查询、收集器)
以上所有(搜索)工作正常
问题
如果我搜索“格林福德路”,
我可能希望出现包含“SM1”的行(表示我希望根据邮政编码得出优先顺序)
我已经测试了查询时间提升,效果很好
但有时我可能会有一个很长的优先邮政编码列表(所以我不想循环每个邮政编码,并在查询时设置其优先级)
我想要文件时间
但无论我设置了什么文档增强(在索引时),它都不会影响我的搜索结果
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)
}
请帮忙
我试着理解相似性和评分,但数学太多了
请帮助……我最近自己也遇到了这个问题,我认为这可能是由于通配符查询造成的(至少在我的情况下是这样)。这里有另一篇文章更好地解释了这个问题,并提供了一个可能的解决方案: