php - 索引编制期间Elasticsearch MapperParsingException [无法解析,文档为空]

标签 php elasticsearch elastica

我正在将Elasticsearch 1.2.2与PHP包装器Elastica一起使用

在索引某些文档时,我遇到以下异常

PHP Fatal error:  Uncaught exception 'Elastica\Exception\Bulk\ResponseException' with message 'Error in one or more bulk request actions:

index: /en_search/en_msg/936 caused MapperParsingException[failed to parse, document is empty]
' in /root/search/vendor/ruflin/elastica/lib/Elastica/Bulk.php:395
Stack trace:
#0 /root/search/vendor/ruflin/elastica/lib/Elastica/Bulk.php(345): Elastica\Bulk->_processResponse(Object(Elastica\Response))
#1 /root/search/vendor/ruflin/elastica/lib/Elastica/Client.php(284): Elastica\Bulk->send()
#2 /root/search/vendor/ruflin/elastica/lib/Elastica/Index.php(147): Elastica\Client->addDocuments(Array)
#3 /root/search/vendor/ruflin/elastica/lib/Elastica/Type.php(187): Elastica\Index->addDocuments(Array)
#4 /root/search/setData.php(36): Elastica\Type->addDocuments(Array)
#5 {main}
  thrown in /root/search/vendor/ruflin/elastica/lib/Elastica/Bulk.php on line 395

现在它无法解析的文档就是这个显然不是空的文档。
array(
    [id] => 936
    [uid] => 3222
    [msid] => 211
    [login] => user1222
    [msg] => Wouldn’t you love a cup right now?
)

文档映射是这样的
$mapping->setProperties(array(
    'id'  => array('type' => 'integer', 'include_in_all' => true),
    'uid' => array('type' => 'integer', 'include_in_all' => true),
    'msid' => array('type' => 'integer', 'include_in_all' => true),
    'login' => array('type' => 'string', 'include_in_all' => TRUE),
    'msg'  => array('type' => 'string', 'include_in_all' => true), 

));

如此处建议以批量模式进行索引
elatica.io: Bulk indexing

我很确定这是由字符引起的。不知道是否需要转义。万一我该如何逃脱此类字符?

最佳答案

解决了 。这是一个编码问题。我的数据来自mysql服务器,我必须在pdo对象初始化期间设置正确的charset选项。

关于php - 索引编制期间Elasticsearch MapperParsingException [无法解析,文档为空],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717001/

相关文章:

elasticsearch - 如何包含按实体类型分组的搜索建议?

php - 优化类似查询mysql

PHP DOM,方法链

elasticsearch - ElasticSearch:更新数组中的嵌套文档

algorithm - 使用 ElasticSearch 进行模糊重复搜索

elastica - 如何使 Elastica 查询排序工作?

javascript - Unslider 的高度和宽度问题

php - 如何在php中使用css样式

java - Elasticsearch 5.x 无法启动

php - elasticsearch匹配词组前缀和其他