处理许多日历以及存储/查询它们的好方法

时间:2011-04-29 13:43:14

标签: solr

首先是某些模型:我们的广告包含日历。每个日期都有一个布尔值(更像是三元值字段,但不会改变问题)来检查广告在该日期的异议(是,否,未知)。我想创建一个solr索引,以便能够将Ad作为文档进行搜索(该部分已完成)并添加一些分面或查询异议。

ie:广告匹配...加上A和B之间的差异。然后solr返回我在那些日期的日历中带有可逆(或未知......)的广告文档列表。

我如何描述Solr索引,以便能够搜索具有此类限制的广告,如果它是可行的?

非常感谢任何帮助,感谢您的时间。 抱歉我的英语不好,任何语法评论都会很好!

1 个答案:

答案 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- *字段结构化为日期类型的另一个好处是范围查询支持,它既适用于搜索结果,也适用于构面。