我使用FOQElasticaBundle将弹性搜索集成到我的Symfony2项目中。我有一个名为Recipe的实体,这个实体具有$draft属性,它指示配方尚未完成。我想从弹性搜索结果中排除具有属性$draft = 1的菜谱。
这是我的foq_elastica配置的一部分:
...
types:
chef:
mappings:
surname: {boost: 5}
name: {boost: 4}
nbLikes: { index: not_analyzed }
nbFollowers: { index: not_analyzed }
persistence:
driver: orm
model: Interacso\ApiBundle\Entity\Chef
identifier: id
provider: ~
finder: ~
listener: ~
recipe:
mappings:
name: {boost: 100}
chefName: {boost: 10}
chefSurname: {boost: 10}
bookNames: {boost: 5}
ingredientNames: {boost: 2}
tagNames: {boost: 2}
persistence:
driver: orm
model: Interacso\ApiBundle\Entity\Recipe
identifier: id
provider: ~
finder: ~
listener: ~
....有什么建议吗?
发布于 2013-10-09 15:11:34
好的,我自己找到了答案,如果有人有同样的问题,响应是在配置文件中指定一个查询生成器:
recipe:
mappings:
name: {boost: 100}
chefName: {boost: 10}
chefSurname: {boost: 10}
bookNames: {boost: 5}
ingredientNames: {boost: 2}
tagNames: {boost: 2}
persistence:
driver: orm
model: Interacso\ApiBundle\Entity\Recipe
identifier: id
provider:
query_builder_method: buildIfIsNotDraft
finder: ~
listener: ~并在返回的存储库中实现指定的方法。包的正式文档中的更多信息:https://github.com/Exercise/FOQElasticaBundle
https://stackoverflow.com/questions/19274989
复制相似问题