繁体   English   中英

如何从solrj获取查询分析响应/同义词

[英]how to get Query Analysis response / synonym from solrj

我在应用程序中使用solr同义词..这是我从中获取同义词的查询

http://localhost:8983/solr/analysis/field?analysis.query='+request.term+'&analysis.fieldname=description&analysis.showmatch=true&wt=json&indent=true

我尝试使用solrj来获取同义词

    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("qt", "/analysis/field");
    params.set("analysis.query", queryterm);
    params.set("analysis.fieldname", "description");
    params.set("analysis.showmatch", true);

    try {
        resp1 = server.query(params);
        System.out.println(resp1);
    } catch (SolrServerException ex) {
        System.out.println(ex);
    }

    SolrDocumentList results = resp1.getResults();
    for (int i = 0; i < results.size(); ++i) {
        System.out.println(results.get(i).getFieldValue("description").toString());
    }

如何获得同义词?

您无法通过SolrJ获得同义词。 唯一的方法-使用RestAPI(Solr 4.8+)

同义词在大多数情况下,用于管理同义词的API的行为与停用词的API相似,不同之处在于,除了使用单词列表之外,我们还需要使用地图,其中地图中每个条目的值都是一个集合一个术语的同义词。 与停用词一样,示例服务器附带最少的一组英语同义词映射,这些映射由schema.xml中的以下字段类型定义激活:

<fieldType name="managed_en" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>    
    <filter class="solr.ManagedSynonymFilterFactory" 
            managed="english" />    
  </analyzer>
</fieldType>

要获取托管英语同义词的地图,请将GET请求发送至:

curl "http://localhost:8983/solr/collection1/schema/analysis/
synonyms/english"

有关此的更多信息-http://lucidworks.com/blog/introducing-solrs-restmanager-and-managed-stop-words-and-synonyms/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM