Solr IOException для испанских персонажей (пример фильмов) - PullRequest
1 голос
/ 16 марта 2019

Характеристики: Solr 7.7.1.Ubuntu Linux 18.04.

Я следовал этому уроку https://www.youtube.com/watch?v=5gPhZm9XzAY&feature=youtu.be, чтобы просто создать ядро ​​solr и публиковать данные из примера фильмов, упакованного с Solr.

Я использовал командуbin/post -c films example/films/films.xml и получил следующую ошибку о 6-м документе.

<str name="msg">ERROR: [doc=/en/quien_es_el_senor_lopez] Error adding field 'name'='¿Quién es el señor López?' msg=For input string: "¿Quién es el señor López?"</str>
  <int name="code">400</int>
</lst>
</response>
SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8983/solr/films/update

Это связано с символами испанского языка?Это кажется странным, так как это предварительно упакованный пример Solr и он работает в учебнике.Может ли быть что-то не так с моей настройкой?

edit * Ошибки в журнале solr следующие

2019-03-16 14:21:32.097 INFO  (qtp802600647-22) [   x:films] o.a.s.s.ManagedIndexSchema Upgraded to managed schema at /home/mcgoy/solr-7.7.1/server/solr/films/conf/managed-schema
2019-03-16 14:21:32.454 INFO  (qtp802600647-22) [   x:films] o.a.s.u.p.LogUpdateProcessorFactory [films]  webapp=/solr path=/update params={}{add=[/en/45_2006 (1628172286382047232), /en/9_2005 (1628172286626365440), /en/69_2004 (1628172286630559744), /en/300_2007 (1628172286632656896), /en/2046_2004 (1628172286636851200)]} 0 1044
2019-03-16 14:21:32.487 ERROR (qtp802600647-22) [   x:films] o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: ERROR: [doc=/en/quien_es_el_senor_lopez] Error adding field 'name'='¿Quién es el señor López?' msg=For input string: "¿Quién es el señor López?"
...
Caused by: java.lang.NumberFormatException: For input string: "¿Quién es el señor López?"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
    at java.lang.Double.parseDouble(Double.java:538)
    at org.apache.solr.schema.DoublePointField.createField(DoublePointField.java:156)
    at org.apache.solr.schema.PointField.createFields(PointField.java:250)
    at org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:65)
    at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:171)

Ответы [ 2 ]

2 голосов
/ 17 марта 2019

Сообщение об ошибке сообщает, что Solr добавил тип поля для поля, которое вы отправляете, как двойное поле.Это происходит, когда первый отправленный вами документ имеет числовое значение в поле, и вы не добавили явные типы полей - поскольку для этого потребуется Solr, чтобы угадать типы полей (т. Е. Активен режим без схемы).

Caused by: **java.lang.NumberFormatException**: For input string: "¿Quién es el señor López?"
    at sun.misc.**FloatingDecimal**.readJavaFormatString(FloatingDecimal.java:2043)

Режим без схемы полезен для быстрого создания прототипов и экспериментов, но при импорте реальных, живых данных вы всегда должны сначала определять свои поля, чтобы избежать подобных случаев.

Именно поэтому определение полей сначалаработает должным образом, так как Solr не нужно угадывать, какой тип поля основан на первом документе с присутствующим полем.

1 голос
/ 17 марта 2019

Я получаю ту же ошибку, если пытаюсь импортировать файл на новом ядре Solr:

$ solr create -c films
$ post -c films example/films/films.xml 

Однако сообщение работает корректно, если я добавлю поле в ядро ​​ перед импортом данных, что описано в README.txt примера фильмов:

$ solr delete -c films
$ solr create -c films
$ curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{
    "add-field" : {
        "name":"name",
        "type":"text_general",
        "multiValued":false,
        "stored":true
    },
    "add-field" : {
        "name":"initial_release_date",
        "type":"pdate",
        "stored":true
    }
}'

$ post -c films example/films/films.xml 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...