想你了的他他 发表于 2017-12-19 16:47:04

Solr.NET快速入门(四)【相似查询,拼写检查】

相似查询
  此功能会返回原始查询结果中返回的每个文档的类似文档列表。
  参数通过QueryOptions的MoreLikeThis属性定义。
  示例:搜索“apache”,为结果中的每个文档搜索“cat”(类别)和“manu”(制造商)字段中的相似文档:
  

ISolrBasicOperations<Product> solr = ...  
var results = solr.Query(new SolrQuery("apache"), new QueryOptions {
  MoreLikeThis = new MoreLikeThisParameters(new[] {"cat", "manu"}) {
  MinDocFreq = 1, // minimum document frequency
  MinTermFreq = 1, // minimum term frequency
  },
  
});
  
foreach (var r in results.SimilarResults) {
  Console.WriteLine("Similar documents to {0}", r.Key.Id);
  foreach (var similar in r.Value)
  Console.WriteLine(similar.Id);
  Console.WriteLine();
  
}
  

  支持在Solr文档中定义的所有参数。

拼写检查
  您需要在标准请求处理程序中安装SpellCheckComponent才能使用它。
  接下来,必须提供拼写检查字典。 通常,通过在提交/优化时调用BuildSpellCheckDictionary()创建默认字典(您还可以配置Solr自动重建拼写检查索引):
  

ISolrOperations<Product> solr = ...  
solr.BuildSpellCheckDictionary();
  

  现在,您可以通过在QueryOptions中定义SpellCheck参数来开始发出拼写检查查询:
  

ISolrOperations<Product> solr = ...  
var results = solr.Query("ipo appl", new QueryOptions {
  SpellCheck = new SpellCheckingParameters {Collate = true}
  
});
  

  然后从结果中获取建议.SpellChecking,ie .:
  

foreach (var sc in results.SpellChecking) {  Console.WriteLine("Query: {0}", sc.Query);
  foreach (var s in sc.Suggestions) {
  Console.WriteLine("Suggestion: {0}", s);                  
  }
  
}
  

  这将打印:
  

Query: ipo  
Suggestion: ipod
  
Query: appl
  
Suggestion: apple
  

  除了extendedResults选项之外,所有SpellCheckComponent参数都受支持。
页: [1]
查看完整版本: Solr.NET快速入门(四)【相似查询,拼写检查】