zoukankan      html  css  js  c++  java
  • Solr Suggest 配置

    1.配置

    <searchComponent  name="suggest" class="solr.SpellCheckComponent">

        <str name="queryAnalyzerFieldType">string</str>

        <lst name="spellchecker">

            <str name="name">suggest</str>

            <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>

            <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>

            <str name="field">text</str>

            <float name="threshold">0.0001</float>

            <str name="spellcheckIndexDir">spellchecker</str>

            <str name="comparatorClass">freq</str>

            <str name="buildOnOptimize">true</str>

            <!--<str name="buildOnCommit">true</str>-->

        </lst>

    </searchComponent>

    <requestHandler  name="/suggest" class="solr.SearchHandler" startup="lazy">

        <lst name="defaults">

            <str name="spellcheck">true</str>

            <str name="spellcheck.dictionary">suggest</str>

            <str name="spellcheck.onlyMorePopular">true</str>

            <str name="spellcheck.extendedResults">false</str>

            <str name="spellcheck.count">10</str>

            <str name="spellcheck.collate">true</str>

        </lst>

        <arr name="components">

            <str>suggest</str>

        </arr>

     </requestHandler>

     
     
    /suggest?q=....
     
    public JsonResult SolrSuggest(string text)
            {
                List<string> list=new List<string>();
                var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
                var results = solr.Query(text, new QueryOptions()
                {
                    SpellCheck = new SpellCheckingParameters(){Collate = true}
                });
                foreach (var item in results.SpellChecking)
                {
                    foreach (var sc in item.Suggestions)
                    {
                        list.Add(sc);
                    }
                }
                return Json(list, JsonRequestBehavior.AllowGet);
            }
  • 相关阅读:
    oracle闪回某个时间段的数据
    查询某个表某个字段重复记录急重复数量
    调用腾讯QQ启动
    MongoDB笔记(二):MongoDB下Shell的基本操作
    MongoDB笔记(一):MongoDB介绍及Windows下安装
    freemarker相关
    oracle获取时间毫秒数
    如何简单地理解Python中的if __name__ == '__main__'
    python套接字基本使用
    Mysql表的约束设计和关联关系设计
  • 原文地址:https://www.cnblogs.com/steben/p/3808194.html
Copyright © 2011-2022 走看看