【问题标题】:SOLR 6 - indexing documentsSOLR 6 - 索引文档
【发布时间】:2017-03-05 05:30:54
【问题描述】:

我需要在 SOLR 服务器上索引文档并更新特定字段。我在 Windows 上使用 post jar 来索引文档。

第一个问题:是否可以直接从post工具中设置必填字段的值?

如果没有,text 字段不会被存储,而只是被索引。因此,当我更新该字段时, text 字段正在丢失所有内容。我正在使用 http 更新 (POST) 更新该字段。帖子参数为:{"id":"D:\TESTNEWATTACH\AnexaNr.docx","PCC_TABLENAME":{"set":"PCC_CRM_ATTACH"}}

主要问题是:如何在不丢失文档内容搜索能力的情况下索引文档并设置属于该文档的字段?

【问题讨论】:

    标签: indexing solr document


    【解决方案1】:

    要仅更新文档中的单个字段,必须将所有字段设置为已存储。如果您没有将字段设置为已存储,则在进行更新时会丢失内容(因为内部流程是检索文档、更新文档、重新提交文档)。

    post 工具支持为更新处理程序提供任意参数:

    -params "=[&=...]"(值必须是 URL 编码的;这些传递到 Solr 更新请求)

    .. 可以与literal.fieldname=valueprovide a value for the field(s) directly in the post request 一起使用。

    文字。

    使用为每个文档提供指定值的名称填充字段。如果字段是多值的,则数据可以是多值的。

    【讨论】:

    • 非常感谢。我尝试使用 -params 但我无法做到。我收到一个错误。
    • 我试过类似的东西:D:\Solr\solr_6\bin>java -jar -Dauto=true -Dc=gettingstarted -params "literal.PCC_TABLENAME=PCC_CRM_ATTACH" -Ddata=files "D:\ Solr\solr_6\example\exampledocs\post.jar" "d:\TestNewAttach\AnexaNr.docx"
    • 我想到的一种新方法是创建一个存储字段并使用 copyfield 指令将 text 字段的内容复制到我的新字段中。但是,如果我能够使用 post 向我的文档添加字段值会好得多。你能给我提供一个 params 标签的例子吗?
    猜你喜欢
    • 2011-05-27
    • 2012-08-23
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多