2013-03-27 41 views
1

我有一个存储在日志表中的名称和日期结构。他们代表用户的行为,当他们这样做。如何在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无法在中间处理通配符的查询范围。

索引“键值”数据有更好的解决方案吗?

回答

0

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

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