【发布时间】:2012-02-29 16:30:42
【问题描述】:
全部!这是我可怕的案例,谢谢你的帮助! 我想要这样的文件:
<doc>
...
<arr name="occupiedDays"> -- multivalued range field
<range>1 TO 10</range>
<range>5 TO 15</range>
</arr>
...
</doc>
我想这样做的原因当然是因为它比在其中包含所有数字要轻得多。 为了清楚起见,我想避免在 solr 中使用它:
<doc>
...
<arr name="occupiedDays"> -- multivalued int field
<str>1</str>
<str>2</str>
<str>3</str>
<str>4</str>
<str>5</str>
<str>6</str>
<str>7</str>
<str>8</str>
<str>9</str>
<str>10</str>
</arr>
...
</doc>
然后对该范围字段执行范围查询,如:fq=-occupiedDays:[5 TO 30]
有人知道吗?我在整个互联网上询问和搜索,似乎 solr 不支持这一点。
任何帮助都会非常有帮助!提前致谢。
费德里科
【问题讨论】:
-
为什么要避免这种情况?
-
因为它很大并且使我的文档比应有的要重得多。假设我有一个从 1 到 100 的范围,如果我可以将其设置为一个值而不是 100 会更好,对吧?
-
在结果中使用
flparameter 来指定您不想要/不需要occupiedDays的值似乎会更好。 -
但是它仍然对索引很重,这不是响应速度慢的问题,而是当我尝试存储一个非常大的范围时,即使它有 1024M,solr 也会抛出 OutOfMemory 错误分配给它的 ram。所以这就是为什么我试图降低提交文件的大小
-
我明白了。存储
start和end?然后查询start:[5 TO *] AND end:[* TO 30]?