1
在我們的symfony2項目中,我們希望使用ongr-io綁定來實現elasticsearch,但是我們的整個系統是建立在教義上的。是否有可能以某種方式使用ongr-io elasticsearch bundle而不用完全重做整個數據庫而不是實體的文檔?ongr-io彈性搜索綁定實現與教條symfony2
實體,我想指數(搜索領域將是:姓名,ChildCategory和ParentCategory):
/**
* Course
*
* @ORM\Table(name="course")
* @ORM\Entity(repositoryClass="CoreBundle\Repository\CourseRepository")
* @ORM\HasLifecycleCallbacks
*/
class Course
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, unique=false)
*/
private $name;
/**
* @var ParentCategory
*
* @ORM\ManyToOne(targetEntity="ParentCategory")
* @ORM\JoinColumn(name="parentCategory_id", referencedColumnName="id")
*/
private $parentCategory;
/**
* @var ChildCategory
*
* @ORM\ManyToOne(targetEntity="ChildCategory", inversedBy="courses")
* @ORM\JoinColumn(name="childCategory_id", referencedColumnName="id")
*/
private $childCategory;
/**
* @var City
*
* @ORM\ManyToOne(targetEntity="City")
* @ORM\JoinColumn(name="city_id", referencedColumnName="id")
*/
private $city;
/**
* @var Users
*
* @ORM\ManyToOne(targetEntity="UserBundle\Entity\Users", inversedBy="course")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
*/
private $owner;
/**
* @var text
*
* @ORM\Column(name="description", type="text")
*/
private $description;
/**
* @var Picture
*
* @ORM\OneToMany(targetEntity="CoreBundle\Entity\Picture", mappedBy="course", cascade={"persist", "remove"})
*/
private $pictures;
/**
* @var Ratings
*
* @ORM\OneToMany(targetEntity="CoreBundle\Entity\Ratings", mappedBy="courseid")
*/
private $ratings;
public $avgRating;
}
謝謝您的回覆。如果我理解你的話,我只需要在Document文件夾中創建一個空的類,並且繼續對已有的實體做所有事情,但是如果我這樣做,我會收到一個錯誤:「」CoreBundle \ Document \ Course「類不能解析爲文檔,因爲缺少@Document註釋。「它只有在我將這個類作爲文檔擴展時才起作用,但是它不會僅僅在這個空的文檔類中查找字段嗎? –
我想,我誤解了你想做的事情。如果你想堅持教條實體的Elasticsearch,這將無濟於事。如果你將有一個單獨的類,你仍然需要從實體中填充值。爲什麼不簡單地創建單獨的文檔,只需要那些你需要的字段呢? – saimaz
但是這種重複性會不會影響性能和存儲使用量? –