首先是某些模型:我们的广告包含日历。每个日期都有一个布尔值(更像是三元值字段,但不会改变问题)来检查广告在该日期的异议(是,否,未知)。我想创建一个solr索引,以便能够将Ad作为文档进行搜索(该部分已完成)并添加一些分面或查询异议。
ie:广告匹配...加上A和B之间的差异。然后solr返回我在那些日期的日历中带有可逆(或未知......)的广告文档列表。
我如何描述Solr索引,以便能够搜索具有此类限制的广告,如果它是可行的?
非常感谢任何帮助,感谢您的时间。 抱歉我的英语不好,任何语法评论都会很好!
答案 0 :(得分:1)
首先以所需的形式实现搜索输出需要正确的架构结构。根据您的说明,您有三个字段:“ad”,“date”和“disponibility”。但是,您希望彼此关联“日期”和“不同意义”。将索引结构化为单独的字段是不可取的。
在这种情况下,请考虑以下架构:
<fields>
<field name="ad" type="string" indexed="true" stored="true" required="true" />
<field name="disp-yes" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
<field name="disp-no" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
<field name="disp-unknown" type="date" indexed="true" stored="true" required="true" multiValued="true"/>
</fields>
(对索引,存储和数据类型属性进行猜测。)
在此架构中,您可以为每个广告编制索引,并将日期值添加到“disp- *”字段定义中。查询时,您可以构建搜索以根据异议检索广告以及应用构面查询。
将disp- *字段结构化为日期类型的另一个好处是范围查询支持,它既适用于搜索结果,也适用于构面。