`

Solr的Suggest用法代码示例

    博客分类:
  • Solr
阅读更多
Solr4.7版本,使用Solr的Suggest功能代码样例:

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.util.NamedList;

public class SolrSuggest {

    private HttpSolrServer solr = new HttpSolrServer(
            "http://localhost:8080/solr/collection1");

    private static final String REQUEST_HANDLER = "/suggest";

    private static final String SUGGEST_DICTIONARY = "mySuggester";

    private int _count = 0;
    private int _status = 0;
    private int _QTime = 0;

    public int getCount() {
        return this._count;
    }

    public int getStatus() {
        return this._status;
    }

    public int getQTime() {
        return this._QTime;
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    public List<String> getSuggest(String query) {
        SolrQuery solrQuery = new SolrQuery();
        solrQuery.setRequestHandler(REQUEST_HANDLER);
        solrQuery.set("suggest.dictionary", SUGGEST_DICTIONARY);
        solrQuery.set("suggest.q", query);

        QueryResponse response = null;
        try {
            response = solr.query(solrQuery);
        } catch (SolrServerException e) {
            e.printStackTrace();
        }

        List<String> rtn = new ArrayList<String>();
        if (response != null) {
            this._status = response.getStatus();
            this._QTime = response.getQTime();

            NamedList<Object> result = response.getResponse();
            Map map = (Map) result.get("suggest");
            NamedList nvPairs = (NamedList) map.get(SUGGEST_DICTIONARY);
            nvPairs = (NamedList) nvPairs.get(query);

            this._count = Integer.parseInt(nvPairs.get("numFound").toString());

            List<NamedList> lst = (List<NamedList>) nvPairs.get("suggestions");
            for (int i = 0; i < lst.size(); i++) {
                System.out.println(lst.get(i).get("term"));
                rtn.add(lst.get(i).get("term").toString());
            }
        }

        return rtn;
    }
}
分享到:
评论

相关推荐

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

    标题中的“solr7.5_ik分词器,suggest配置源文件”指的是在Solr 7.5版本中使用Ik分词器和Suggest组件进行配置和使用的源文件。Ik分词器是针对中文环境优化的,它包括了多种分词策略,如全模式、最细粒度模式等,可以...

    solr5.5.4项目示例

    这个库提供了一套API,使得与Solr的通信更加简便,可能在本示例中也有使用。 9. **分布式搜索**:Solr 5.5.4版本支持分布式部署,这意味着多个Solr服务器可以协同工作,提高性能和可用性。如果示例涉及到分布式搜索...

    solr4.3源代码一

    Solr4.3源代码的获取通常是为了深入理解其内部工作原理,进行定制开发或优化。在你提供的信息中,我们重点关注的是"lucene"目录,这表明你关注的是Solr中与Lucene搜索引擎库相关的部分。 **Lucene简介** Lucene是...

    Solr 4.0 源代码实例

    源代码实例是学习Solr内部工作原理和自定义功能的关键资源,尤其对于开发者而言,深入理解源码有助于提升系统的优化和扩展能力。 在Solr 4.0版本中,`solr.xml`是Solr的核心配置文件,它定义了Solr实例的基本设置,...

    solr4.6.0 源代码

    通过研究Solr 4.6.0的源代码,开发者可以深入理解其内部工作原理,定制化搜索服务,优化性能,以及解决在部署和使用过程中遇到的问题。这不仅有助于提升对全文检索技术的理解,也有利于开发更加高效和个性化的搜索...

    solr示例(含代码,jar包,文档)

    Solr,全称为Apache Solr,是一款开源的企业...通过学习这个压缩包中的内容,你可以深入了解Solr的使用方法,从而在实际项目中构建高效、灵活的全文搜索引擎。记得根据提供的示例代码和文档逐步实践,加深理解和掌握。

    solr cloud6.1.0拼音分词

    Solr Cloud 6.1.0 是 Apache Solr 的一个版本,它是一个开源的企业级搜索平台,被广泛用于构建高效、可扩展的全文检索服务。在这个版本中,它支持拼音分词,使得中文搜索能力得到显著提升。拼音分词是处理中文文本的...

    solr in action配套代码和数据

    3. **Java客户端代码**:可能是Java API的示例,展示了如何与Solr服务器进行交互,如添加、更新和删除文档,执行查询,或者处理结果。 4. **脚本**:可能包括用于自动化任务的shell脚本或Python脚本,如批量导入...

    SSM+spring-data-solr+solr7.7 全文搜索代码

    - 创建Solr的Repository接口,定义查询方法。 - 使用Spring Data Solr提供的`SolrTemplate`或者Repository接口,进行索引的增删改查操作。 - 将业务数据同步到Solr,构建索引,以供搜索使用。 - 在SpringMVC的...

    SpringBoot集成Solr全文检索,示例工程源码,ik分词插件

    在本项目中,我们主要...同时,`solr-example.zip`包含了一个Solr的示例配置,可以帮助理解Solr的工作原理。通过学习这个项目,开发者可以快速掌握如何在SpringBoot项目中实现全文检索功能,提升应用程序的搜索体验。

    solr functionquery自定义函数contain示例

    solr functionquery函数查询功能强大,但字符串函数比较缺乏,该示例是contain示例,表示值中包含传入的字符串即返回1 否则返回0,可用于solr查询中如果某个字段包含动态传入的值在排名优先。有其他查询排序需求...

    Solr in action Source Code

    Solr in action 源代码。Solr实战源码。Solr实战源码。Solr实战源码。Solr实战源码

    solr简单应用操作的代码部分

    数据导入的代码示例可能如下: ```bash bin/post -c simple simple_data.csv ``` 一旦数据导入完成,我们就可以对Solr进行查询了。查询是通过发送HTTP请求到Solr服务器实现的,请求中包含查询参数。例如,如果我们...

    Mining Solr In Action源代码

    针对Minging Solr in Action原版书的所有相关源代码示例及所有有关schema.xml, solrconfig.xml的详细配置示例,可以直接运行,配合教程再运行源代码更有助于深入理解、掌握solr全面知识点。

    solr4.3源代码二

    3. **LICENSE.txt** 和 **NOTICE.txt**:这两个文件分别包含了Solr 4.3的许可协议和版权信息,确保你在使用和修改源代码时遵循正确的法律条款。 4. **BUILD.txt**:提供了构建Solr 4.3的详细指南,包括编译环境设置...

    solr(solr-9.0.0.tgz)

    4. **docs** 文件夹:包含了Solr的用户文档,可以帮助开发者和管理员了解Solr的使用方法和API。 5. **example** 文件夹:提供了一个简单的Solr实例,包括了如何设置和运行的基本示例,对于初学者来说非常有用。 6....

    lucene solr框架代码实例(可直接运行)

    本文将围绕“lucene solr框架代码实例(可直接运行)”这一主题,深入探讨Lucene和Solr的核心特性,以及如何通过它们构建实际的搜索应用。 首先,Lucene是Apache软件基金会的一个开源项目,它提供了一个高性能、...

    solr4.7示例包含需要的jar包

    solr4.7+myeclipse示例包含需要的jar包 httpcore-4.3 httpmime-4.3.1 jtds-1.2.4 jul-to-slf4j-1.6.6 solr-core-4.7.0

    Apache Solr(solr-8.11.1.tgz)

    它包括一个默认的配置集,以及一个简单的数据导入处理程序(DIH)示例,帮助开发者了解如何设置和使用Solr。 5. **docs 目录**:包含了Solr的文档,包括用户手册、API参考和教程,对于学习和调试Solr非常有用。 6....

    solr(solr-9.0.0-src.tgz)源码

    - `example`: 示例配置和启动脚本,帮助快速启动和测试Solr实例。 - `lucene`: 内含Lucene库源码,Solr的核心搜索引擎库。 4. **关键类与接口** - `SolrCore`: 代表Solr的单一索引实例,包含了索引、查询和其他...

Global site tag (gtag.js) - Google Analytics