`
baibashige
  • 浏览: 143388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

solr--solr suggester

    博客分类:
  • Solr
 
阅读更多
在Solr的自动完成/自动补充-Suggester组件:
1.可直接启动example/start.jar启动jetty;访问
[url]http://localhost:8983/solr/spell?q=delll ultrashar&spellcheck=true&spellcheck.collate=true&spellcheck.build=true[/url]
2.配置solrconfig.xml,
①.引用sourceLocation词典。
<searchComponent class="solr.SpellCheckComponent" name="suggest">
    <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>
      <!-- Alternatives to lookupImpl: 
           org.apache.solr.spelling.suggest.fst.FSTLookup   [finite state automaton]
           org.apache.solr.spelling.suggest.fst.WFSTLookupFactory [weighted finite state automaton]
           org.apache.solr.spelling.suggest.jaspell.JaspellLookup [default, jaspell-based]
           org.apache.solr.spelling.suggest.tst.TSTLookup   [ternary trees]
      -->
      <str name="field">name</str>  <!-- the indexed field to derive suggestions from -->
      <float name="threshold">0.005</float>
      <str name="buildOnCommit">true</str>
      <str name="sourceLocation">solr\conf\spellings.txt</str>
    </lst>
  </searchComponent>
  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
    <lst name="defaults">
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest</str>
      <str name="spellcheck.onlyMorePopular">true</str>
      <str name="spellcheck.count">5</str>
      <str name="spellcheck.collate">true</str>
    </lst>
    <arr name="components">
      <str>suggest</str>
    </arr>
  </requestHandler>

②创建索引目录spellcheckIndexDir,默认在内存中创建,
<searchComponent name="suggest" class="solr.SpellCheckComponent">
  <lst name="spellchecker">
    <str name="name">default</str>
    <str name="classname">solr.IndexBasedSpellChecker</str>
    <str name="field">spell</str>
    <str name="spellcheckIndexDir">D:\opensource\solr\solr1\solr\data\spellchecker</str>
    <str name="accuracy">0.7</str>
    <float name="thresholdTokenFrequency">.0001</float>
  </lst>
  <str name="queryAnalyzerFieldType">textSpell</str>
</searchComponent>

<requestHandler name="/suggest" class="solr.SearchHandler">
  <lst name="defaults">
    <str name="df">text</str>
    <str name="spellcheck.dictionary">default</str>
    <str name="spellcheck.onlyMorePopular">false</str>
    <str name="spellcheck.extendedResults">false</str>
    <str name="spellcheck.count">10</str>
  </lst>
  <arr name="components">
    <str>suggest</str>
  </arr>
</requestHandler>

添加到solrconfig.xml,重启jetty,访问http://localhost:8983/solr/suggest?q=pizza&spellcheck.build=true
spellings.txt内容:
pizza
history

结果:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">19</int>
</lst>
<str name="command">build</str>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="pizza">
<int name="numFound">1</int>
<int name="startOffset">0</int>
<int name="endOffset">5</int>
<arr name="suggestion">
<str>pizza</str>
</arr>
</lst>
<str name="collation">pizza</str>
</lst>
</lst>
</response>

在程序中访问调用solrj.jar的api.
注意:如果是删掉原来的spellcheck在重启时可能报错:
“SolrException: Unknown Search Component: spellcheck at org.apache.solr.core.SolrCore”

在solrconfig.xml中搜索spellcheck将多余的删掉再重启。

参考:
http://wiki.apache.org/solr/SpellCheckComponent
http://wiki.apache.org/solr/Suggester/
分享到:
评论

相关推荐

    apache-solr-ref-guide-7.1.pdf

    “Suggester”部分讲解了如何使用Solr的建议器功能,该功能可以为用户输入的查询提供实时建议。 “MoreLikeThis”部分介绍了如何查找与给定文档类似的其他文档。 在“Pagination of Results”部分,解释了如何对...

    solr-suggest-sample-ui:这是 Solr Suggester 的示例 UI

    Solr Suggester 是 Apache Solr 的一个功能强大的特性,用于提供自动补全和建议功能。这个"solr-suggest-sample-ui"是一个演示项目,它展示了如何在实际应用中集成和使用 Solr Suggester。下面我们将深入探讨 Solr ...

    solr7.5_ik分词器,suggest配置源文件文件

    Solr是中国Apache软件基金会开发的一款高性能、全文搜索引擎服务器,它基于Lucene库并提供了更高级别的服务,如分布式搜索、缓存、复制和集群管理。Ik分词器是Solr中常用的中文分词插件,它能有效地对中文文本进行...

    multi-select-facet:Apache Solr,Vue和Go的多选方面示例

    $ PODMAN=docker make start-solr 运行API // build the api$ go build -v -o api// start the api with the initialization options$ ./api -create-collection -init-schema -index-data -init-suggester 运行...

    solr搜索自动补全

    开发者需要在Solr端配置相应的自动补全逻辑,通常需要使用Solr的suggester组件,它支持多种搜索建议算法,比如Term Query Suggester、Document Lookup Suggester等。 5. 执行效果。在前端页面配置完成后,当用户...

    solr4.7中文企业开发参考文档

    这通常通过配置SpellChecker或Suggester组件来实现,它们可以基于用户的输入历史或者字典文件生成推荐的查询建议。 3. **分组查询**:Solr支持基于某个字段的分组查询,可以将搜索结果按照特定字段(如类别、品牌等...

    solr 查询应用

    这通常通过使用Suggester组件实现,它可以基于用户的部分输入提供相关建议。 9. **多格式支持**:Solr支持多种数据输入格式,如JSON、XML、CSV等,方便从各种数据源导入数据。 10. **安全与访问控制**:Solr可以...

    pinyinAnalyzer4.3.1.jar

    Solr的建议组件(Suggester)可以结合pinyinAnalyzer,生成基于拼音的自动补全建议,提升用户交互体验。例如,当用户输入“shang”时,系统能快速返回包含“上海”、“商品”等匹配结果。 总结来说,pinyinAnalyzer...

    智能搜索提示功能

    后端可以使用Python(如Django的Haystack框架)或Java(如Solr、Elasticsearch等搜索引擎)来处理查询并返回结果。 4. 工具应用 在开发过程中,开发者可以借助各种工具来辅助实现。例如,使用Elasticsearch作为搜索...

    lucene高级搜索进阶项目_02

    通过Solr或Elasticsearch等工具,可以将一个大索引拆分成多个小索引(分片),然后在多台机器上并行处理,提高搜索性能和可扩展性。 八、优化与性能调优 为了保持最佳性能,需要定期对Lucene索引进行优化。优化过程...

    Ajax+Lucene 打造搜索引擎

    对于大型系统,可能需要分布式搜索解决方案,如Solr(基于Lucene)或Elasticsearch,它们提供了集群管理和更高级的特性。 总结来说,Ajax和Lucene的结合使用可以打造出一个响应迅速、功能丰富的搜索引擎。Ajax负责...

Global site tag (gtag.js) - Google Analytics