【发布时间】:2013-08-01 14:17:36
【问题描述】:
我有一个包含多值字段的 Solr 架构。我在 Solr 外部解析文档并使用http://wiki.apache.org/solr/UpdateJSON 更新索引(另请参阅http://wiki.apache.org/solr/UpdateXmlMessages)。下面是一个演示我要解决的问题的玩具示例。
{
"add": {
"doc": {
"id": "MyDocumentID",
"user": "MyUserID",
"meals": ["pizza", "pizza", "pizza", "burger"]
}
}
}
我希望找到某种语法,可以让我指出“披萨”出现了 3 次,而无需实际写出 3 次。问题是这些频率中的一些可能是数千或数万。 (我正在使用存储的词频对搜索结果进行过滤和排名。)这样的语法存在吗?我正在编造这个,但这里有一个例子来说明这可能看起来如何。
{
"add": {
"doc": {
"id": "MyDocumentID",
"user": "MyUserID",
"meals": ["pizza"*3, "burger"]
}
}
}
我怀疑答案是,如果我想要这样的行为,我需要自己编写一些 Solr 代码。我希望避免这种情况,但如果是这种情况,您仍然可以通过将我指向要处理的代码的正确区域来帮助我。
这是一个相关的 Lucene 问题:Can I insert a Document into Lucene without generating a TokenStream?
【问题讨论】:
-
您使用的是什么 Solr 版本?
-
对于 Solr 4.4,您可能希望从 JsonLoader 开始,这里是解析更新消息的位置(查看 parseDoc() 和 parseSingleFieldValue())。希望这会有所帮助。
-
我使用的是 4.4.0 版本。
-
@BrianL 你找到解决方案了吗?
标签: solr