如何有效地表示Apache Solr中的键值结构

时间:2013-03-27 14:39:56

标签: solr indexing range wildcard

我有一个名称和日期结构,存储在日志表中。它们代表用户操作以及何时执行操作。

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无法处理中间带有通配符的查询范围。

有一个更好的解决方案来索引"关键值"数据?

1 个答案:

答案 0 :(得分:0)

为什么要用分隔符连接名称和日期?您可以在Solr中保留两个单独的字段:字符串字段name和日期字段date,并执行类似

的查询
q=*:*&fq=name:John*&fq=date:[2013-12-01T00:00:00Z TO 2013-12-31T11:59:59Z]