我有一个名称和日期结构,存储在日志表中。它们代表用户操作以及何时执行操作。
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 :(得分:0)
为什么要用分隔符连接名称和日期?您可以在Solr中保留两个单独的字段:字符串字段name
和日期字段date
,并执行类似
q=*:*&fq=name:John*&fq=date:[2013-12-01T00:00:00Z TO 2013-12-31T11:59:59Z]