zoukankan      html  css  js  c++  java
  • 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参数都受支持。

  • 相关阅读:
    一些牛逼的统计SQL
    一个有趣的 SQL 查询(查询7天连续登陆)
    Highcharts-3.0.6
    linux 下载并安装Memcache服务器端
    nginx + tomcat集群和动静资源分离
    C#中使用SendMessage在进程间传递数据的实例
    Wparam与Lparam的区别
    WPARAM和LPARAM的含义
    C# 使用SendMessage 函数
    在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)
  • 原文地址:https://www.cnblogs.com/Wulex/p/6962033.html
Copyright © 2011-2022 走看看