我在使用meilisearch和vue-instantsearch时遇到了一个小问题。
我有一些模型,其中有一个叫car-model
,还有一个叫manufacturer
,manufacturer
和car-model
的关系是1:n。
现在,manufacturer
-model有一个名为founder
的字段。因此,如果我以公司VW
为例,我将名称Ferry Porsche
添加到该Model的founder字段。
当我现在用meilisearch搜索我的indizes时,我在搜索框中输入Porsche
,我得到Porsche
作为manufacturers
的结果,但我也得到VW
,因为出于某种原因,vue-instantsearch也显示manufacturer
-model的founder
-属性中的点击率。
根据vue-instantsearch
的文档,我可以这样限制正在搜索的属性:
<ais-index index-name="manufacturer">
<ais-configure :attributes-to-retrieve="['manufacturer']"> <!-- <-- this should in theory limit the results to hits only in model-->
<ais-hits>
<template v-slot:item="{ item }">
<h3>
<ais-highlight :hit="item" attribute="name"/>
</h3>
<template v-if="item.logo">
<div class="hit-name__thumbnail">
<img :src="getImageUrl(item?.logo?.url)"
class="img-responsive search-box__results-manufacturer-logo"/>
</div>
</template>
</template>
</ais-hits>
</ais-configure>
</ais-index>
字符串
但是这并不起作用,我仍然得到manufacturer
的VW
和Porsche
结果。这里我遗漏了什么吗?
任何帮助都将不胜感激,
Greetz DeM
2条答案
按热度按时间t40tm48m1#
根据vue-instantsearch的configure widget文档:
prop必须使用camel大小写,因为它们直接转发到Algolia API。在HTML或字符串模板中,您可以通过在prop的值之前添加
.camel
来实现这一点。所以应该是:
字符串
h79rfbju2#
谢谢,@CaroFG,这并没有解决我的问题。
不过,我让它以不同的方式工作,通过直接使用meilisearch API并通过PUT请求在我的模型上设置可搜索的属性。在webstorm HTTP-Client中的解决方案看起来像这样:
字符串
德赫里茨?特里舍莫恩奇