Solr为url返回了一个错误#400(错误请求)

我正在使用Solr 6.5.0,并且遇到了一个场景,我必须为文档中可能包含多种语言的数据字段建立索引。

我正在尝试为每种语言使用一个单独的字段,并且必须将特定语言的数据编入为该语言定义的相应字段。

我在下面添加了配置和模式更改:

Solr配置:

  <requestHandler name="/update" class="solr.UpdateRequestHandler">
       <lst name="defaults">
         <str name="update.chain">langid</str>
       </lst>    
    </requestHandler>
    <updateRequestProcessorChain name="langid">
         <processor class="org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory">
           <str name="langid.fl">title</str>
           <str name="langid.langField">lang</str>
           <str name="langid.fallback">en</str>
         </processor>
         <processor class="solr.LogUpdateProcessorFactory" />
         <processor class="solr.RunUpdateProcessorFactory" />
       </updateRequestProcessorChain>

模式:

<field name="code" type="string" indexed="true" stored="true"/>
    <field name="title" type="string" indexed="true" stored="true"/>
    <field name="content_english" type="text_english" indexed="true" stored="true"/>
    <field name="content_french" type="text_french" indexed="true" stored="true"/>
    <field name="content_spanish" type="text_spanish" indexed="true" stored="true"/>

输入xml:

<add>
<doc>
  <field name="code">one</field>
  <field name="title">Adventures</field>
  <field name="content_english">Especially the fuzzy search is very welcome; Solr really is a beautiful engine and it’s incredibly fast: millions of documents are no problem. Of course, if your servers capacities are configured correctly.</field>    
</doc>
<doc>
  <field name="code">two</field>
  <field name="title">Aventures</field>
  <field name="content_french">Surtout la recherche floue est très bienvenue; Solr est vraiment un beau moteur et c'est incroyablement rapide: des millions de documents ne posent aucun problème. Bien sûr, si les capacités de vos serveurs sont configurées correctement.</field>    
</doc>
<doc>
  <field name="code">three</field>
  <field name="title">Aventuras</field>
  <field name="content_spanish">Especialmente la búsqueda difusa es muy bienvenida; Solr realmente es un motor hermoso y es increíblemente rápido: millones de documentos no son ningún problema. Por supuesto, si las capacidades de los servidores están configuradas correctamente.</field>    
</doc>
</add>

每当我更新核心时,我都会得到下面的错误:

C:solr-6.5.0exampleexampledocs>java
-Durl=http://localhost:8983/solr/autodetect/update?update.chain=langid -jar post.jar multilanguage.xml SimplePostTool version 5.0.0 

将文件发布到[base] url http:// localhost:8983 / solr / autodetect / update?update.chain =使用content-type application / xml的langid ...将文件multilanguage.xml发布到[base] SimplePostTool:警告:Solr返回错误#400(错误请求)url:http:// localhost:8983 / solr / autodetect / update?update.chain = langid SimplePostTool:警告:响应:4006org.apache.solr.common.SolrExceptionorg.apache.solr .common.SolrExceptionDocument缺少必需的uniqueKey字段:id400 SimplePostTool:警告:读取响应时发生IOException:java.io.IOException:服务器返回HTTP响应代码:400 for URL:http:// localhost:8983 / solr / autodetect / update? update.chain = langid 1个索引的文件。 将Solr索引更改提交到http:// localhost:8983 / solr / autodetect / update?update.chain = langid ...所用时间:0:00:00.179


错误:您的文档中缺少ID字段。

用于唯一标识每个文档的id在模式文件中指定,如下所示。

<uniqueKey>id</uniqueKey>  

每个文件必须并且应该具有指定为唯一键的字段。

包含所有文档的Id字段并进行检查。 例如:

<doc>
  <field name="id">001</field>
  <field name="code">one</field>
  <field name="title">Adventures</field>
  <field name="content_english">Especially the fuzzy search is very welcome; Solr really is a beautiful engine and it’s incredibly fast: millions of documents are no problem. Of course, if your servers capacities are configured correctly.</field>    
</doc>

那么你有没有看过这个错误? 您的文件没有名为'id'的必填字段的值。 你必须给每个人一个ID:

<add>
<doc>
  <field name="code">one</field>
  <field name="id">1</field>
  <field name="title">Adventures</field>
  <field name="content_english">Especially the fuzzy search is very welcome; Solr really is a beautiful engine and it’s incredibly fast: millions of documents are no problem. Of course, if your servers capacities are configured correctly.</field>    
</doc>
<doc>
  <field name="code">two</field>
  <field name="id">2</field>
  <field name="title">Aventures</field>
  <field name="content_french">Surtout la recherche floue est très bienvenue; Solr est vraiment un beau moteur et c'est incroyablement rapide: des millions de documents ne posent aucun problème. Bien sûr, si les capacités de vos serveurs sont configurées correctement.</field>    
</doc>
<doc>
  <field name="code">three</field>
  <field name="id">3</field>
  <field name="title">Aventuras</field>
  <field name="content_spanish">Especialmente la búsqueda difusa es muy bienvenida; Solr realmente es un motor hermoso y es increíblemente rápido: millones de documentos no son ningún problema. Por supuesto, si las capacidades de los servidores están configuradas correctamente.</field>    
</doc>
</add>

或者你可以配置Solr自动分配一个值,如果一个不存在。

链接地址: http://www.djcxy.com/p/67045.html

上一篇: Solr returned an error #400 (Bad Request) for url

下一篇: Using Curl command in SolrNet