知识点
相关文章
更多最近更新
更多Solr suggest 搜索建议功能 配置问题
2019-03-27 01:03|来源: 网路
<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">ProductName</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>
在solrconfig.xml中的配置如上
地址:http://localhost:8080/solr/Product/suggest/?q=衣
结果
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">1</int> </lst> <lst name="spellcheck"> <lst name="suggestions"> <lst name="衣"> <int name="numFound">9</int> <int name="startOffset">0</int> <int name="endOffset">1</int> <arr name="suggestion"> <str>衣裙</str> <str>衣柜</str> <str>衣架</str> <str>衣裤</str> <str>衣服</str> <str>衣物</str> <str>衣橱</str> <str>衣帽</str> <str>衣帽间</str> </arr> </lst> <str name="collation">衣裙</str> </lst> </lst> </response>
转自:http://www.cnblogs.com/steben/p/3612074
相关问答
更多-
请问solr suggest如何配置搜索中文建议[2022-10-06]
建议的来源使用中文词库 -
要配置建议器的字段应为store=true 。 它不需要索引。 建议器配置将根据suggestComponet的提供配置构建字典。 name字段已存储为true ,其中suggest_ngram不存在。 您需要更新架构配置,如下所示:
您还需要提供参数suggest.dictionary ,这是您用于建议的字典。 对你而言,它是defa ... -
Nutch与Solr(Nutch versus Solr)[2022-06-20]
Nutch是构建网络爬虫和搜索引擎的框架。 Nutch可以完成从收集网页到建立倒排索引的整个过程。 它也可以将这些索引推送到Solr。 Solr主要是一个搜索引擎,支持分面搜索和许多其他简洁的功能。 但Solr不提取数据,你必须提供它。 因此,也许你必须要问的第一件事是在你是否有可用的索引数据(在XML中,在CMS或数据库中)。 在这种情况下,您应该只使用Solr并为其提供数据。 另一方面,如果你不得不从网络上获取数据,你可能更愿意使用Nutch。 Nutch is a framework to build ... -
它没有工作,因为solr在SolrCloud模式下运行。 有两种方法可以在solrCloud模式下执行建议: 使用distrib = false参数。 这将仅从您在命令中访问的一个分片中获取数据。 您可以将以下内容添加到组件定义本身。
false 使用shards和shards.qt参数搜索所有分片。 shards参数将包含要包含在查询中的所有分片的逗号分隔列表。 shards.qt参数将定义您要访问的reat API。 shards.qt:请求分 ... -
要使用多个建议词典(可以应用不同的分析器),您可以使用文档中显示的“多个词典”配置 :
mySuggester FuzzyLookupFactory 只需使用wordDelimiter过滤器https://lucene.apache.org/core/4_4_0/analyzers-common/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilter.html如何在solr搜索组件中添加多个建议器定义(How to add multiple suggesters definition in solr search components)[2022-02-03]
在你的solrconfig.xml中,两个建议的lookupImpl参数都是org.apache.solr.spelling.suggest.fst.AnalyzingInfixLookupFactoryorg.apache.solr.spelling.suggest.fst.AnalyzingInfixLookupFactory 尝试更改suggester2 lookupImpl FuzzyLookupFactory在jboss上记录Solr的问题(Log issue of Solr on jboss)[2022-02-15]
slf4j是一个日志记录外观,这意味着它实际上不会写任何日志。 它可以配置为使用log4j进行日志记录,方法是添加slf4j-log4j jar (假设您正在使用log4j 1.2.xx)并从WEB-INF/lib文件夹中删除slf4j-jdk14 jar。 我假设您的应用程序服务器将log4j类暴露给solr webapp - 如果不是这样,那么您还需要将log4j jar添加到solr WEB-INF/lib目录中。 slf4j is a logging facade, meaning that it ...如何提高Solr性能?(How to improve Solr performance?)[2023-02-25]
您可以只返回每个文档的“id”,然后从MySQL获取这些文档作为永久存储,而不是为每个文档返回400个字段。 因此,对于该示例,如果每次搜索返回25个文档ID,则在您的应用程序中,您可以从MySQL获取25个文档(可以进行并行调用) 根据我的经验,返回更多的字段会增加qTime。 Instead of getting 400 fields back for each document, you can get back just the "id" of each document and then get ...最后我找到了解决方案: 即使您从文件而不是索引字段构建建议字典,您也必须在solrconfig中指定索引字段。 因此,在schema.xml从我们已创建的text_suggest字段类型中创建一个虚拟字段:然后在solrconfig.xml中将 text_suggest 行添加到searchCompo ...