簡體   English   中英

Solrj ContentStreamUpdateRequest無法保存所有文字字段,除非它們是動態的

[英]Solrj ContentStreamUpdateRequest fails to save all literal fields unless they are dynamic

我正在使用提取請求處理程序來索引html和pdf文件。 除了tika的發現,我還想在tika內容之外添加元數據。 為此,我使用文字=支持。 除非我使用動態字段“ * _s”,否則不會保存數據。 只有id字段似乎可以像宣傳的那樣工作。 我確定我做錯了什么。 我的schema.xml字段定義:

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!-- The following fields don't work, need to use dynamic fields for some reason -->
<field name="region" type="text_general" indexed="true" stored="true" multiValued="true"/>
   <field name="href" type="text_general" indexed="true" stored="true" multiValued="true"/>
   <field name="services" type="text_general" indexed="false" stored="true" multiValued="true" />

我的Solrj代碼:

        ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract");
    ContentStream contentStream = new ContentStreamBase.StringStream(contentBean.getContent());
    req.addContentStream(contentStream);

    req.setParam("literal.region", region);

    req.setParam("literal.href", contentBean.getHref());

    req.setParam("literal.id", getDocId(url));
    for (Map.Entry<String,String> entry : getFacetsFromURL(url).entrySet()) {
        logger.info("Setting facet field {} to {}", entry.getKey(), entry.getValue());
        req.setParam("literal." + entry.getKey(), entry.getValue());
    }
    // index h1 tag
    req.setParam("fmap.tags_h1", "h1");
    req.setParam("capture", "h1");
    // index img tag
    req.setParam("fmap.img", "tags_img");
    req.setParam("capture", "img");
    // lowercase tag names
    req.setParam("lowernames", "true");
    /*
     * Passing commitWithin as a parameter seems
     * to be the only way to get it to work with
     * this request handler
     */
    req.setParam("commitWithin", "10000");
    /*
     * Now do the work!
     */
    req.process(server);

將region更改為region_s,將href更改為href_s並將_s添加到地圖中的鍵值即可。 我不明白為什么除非等與模式中的* _s動態字段匹配,否則不保存區域等。 我注意到了其他一些問題。 我試圖使用copyField將文字字段之一移動到用於構面的字段,但在構面字段中從未看到任何數據。 這是我嘗試過的一些方法

<field name="services_facet" type="string" indexed="true" stored="false" multiValued="true" />
<copyField source="services_s" dest="services_facet"/>

services_facet中沒有任何內容。 我可以在services_s上使用,但這不行嗎? Solr-Cell是否損壞或記錄不良?

此問題是由運行solr的舊碼頭會議引起的。 這樣可以防止選擇架構更新。 一旦我殺死碼頭,一切都會按預期進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM