如何在Apache Solr中有效地表示键值结构
问题描述:
我有一个存储在日志表中的名称和日期结构。他们代表用户的行为,当他们这样做。如何在Apache Solr中有效地表示键值结构
Name Date
John A. 2013-04-01
Leev B. 2013-04-02
Anse E. 2013-04-03
我需要索引该数据,保持名称和日期之间的关系。 我已经尝试过以连接fiedls,使用分离器($):
"John A.$2013-04-01"
"Leev B.$2013-04-02"
"Anse E.$2013-04-03"
它工作得很好,但是从现在开始,用户可以通过该名称的一部分进行搜索,而没有完全键入它,使用日期范围。因此,普通的搜索将是:
fq = log_user_date:["John*2013-12-01" TO "John*2013-12-31"]
恰巧Apache Solr无法在中间处理通配符的查询范围。
索引“键值”数据有更好的解决方案吗?
答
为什么要用分隔符连接名称和日期?您可以改为保留两个单独的字段:Solr中的字符串字段name
和日期字段date
,并执行查询,如
q=*:*&fq=name:John*&fq=date:[2013-12-01T00:00:00Z TO 2013-12-31T11:59:59Z]