簡體   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