我定義我的索引ads
如下:映射定義有不支持的參數:[商店:TRUE]
fos_elastica:
clients:
default: { host: %elastica_host%, port: %elastica_port% }
indexes:
ads:
types:
brand:
mappings:
name:
type: string
boost: 5
slug:
type: string
boost: 4
date : ~
isPublished: ~
user:
type: nested
properties:
username: ~
email: ~
persistence:
driver: orm
model: Minn\AdsBundle\Entity\Brend
elastica_to_model_transformer:
service: minn_ads.transformers_elastica.brand
provider: ~
listener:
immediate: ~
finder: ~
供參考: 1.這是如何Brend
與User
與@ManyToOne聯
/**
* @ORM\ManyToOne(targetEntity="Minn\UserBundle\Entity\User")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
供參考: 2.我使用dev-master
分支FOSElasticaBundle和Elastica。對於elasticsearch,我使用2.1.1。
甲populate命令php app/console fos:elastica:populate
總是返回此錯誤:
[彈性曲線\異常\ ResponseException]
{ 「ROOT_CAUSE」:[{ 「類型」: 「mapper_parsing_exception」, 「理由」:「用於映射的定義[user]有不支持的參數:[store:true]「}],」type「:」mapper_parsing_exception「,」reason「:」解析映射失敗[品牌]:
[user]的映射定義具有不支持的參數: store:true]「,」causes_by「:{」type「:」mapper_parsing_exception「,」reason「:」[用戶]的映射定義具有不支持的參數:[store:true]「}}
我檢查了app/logs/dev.log
,我發現索引ads
生成的映射有一個額外的參數"store":true
。您可以檢查下來:
[2015年12月20日21時28分21秒] elastica.DEBUG:日誌請求{ 「路徑」: 「廣告/」, 「方法」: 「PUT」, 「數據」 :{ 「映射」:{ 「品牌」:{ 「屬性」:{ 「名」:{ 「類型」: 「串」, 「提升」:5, 「存儲」:真正}, 「彈頭」:{「型「:」 串 「 」提升「:4, 」存儲「:真正}, 」日期「:{ 」類型「: 」串「, 」存儲「:真正} 」|評論「:{ 」類型「:」 串」, 「商店」:真}, 「用戶」:{ 「類型」: 「嵌套」, 「屬性」:{ 「用戶名」:{ 「類型」: 「字符串」, 「存儲」:真}, 「電子郵件」 :{ 「類型」: 「字符串」, 「存儲」:真}}, 「存儲」:真}}, 「dynamic_date_formats」:[], 「_元」:{ 「模型」:「明尼蘇達州\ AdsBundle \實體\ Brend 「}}}},」 查詢 「:[],」 連接 「:{」 配置 「:{」 報頭 「:[]},」 宿主 「:」 127.0.0.1" , 「端口」:9200, 「記錄器」 :「fos_elastica.logger」,「enabled」:true}} []
下面是映射w ith額外"store": true
。是否有任何想法如何配置FOSElasticaBundle獲得一個映射沒有這個額外的線"store": true
?
{
"mappings": {
"brand": {
"properties": {
"name": {
"type": "string",
"boost": 5,
"store": true
},
"slug": {
"type": "string",
"boost": 4,
"store": true
},
"date": {
"type": "string",
"store": true
},
"isPublished": {
"type": "string",
"store": true
},
"user": {
"type": "nested",
"properties": {
"username": {
"type": "string",
"store": true
},
"email": {
"type": "string",
"store": true
}
},
"store": true # extra line! If deleted, it will work!
}
}
}
}
}
對於那些願意關注,FOSElasticaBundle Github回購的[已打開問題](https://github.com/FriendsOfSymfony/FOSElasticaBundle/issues/985)。 – Val