在多值字段内搜索时的最佳Solr模型

时间:2015-04-09 15:27:36

标签: solr solr4

对于Solr 5中的某种文档,我有以下模型:

  • 每个实体1个文件
  • 实体有大约100个单值属性
  • 实体具有1个多值属性uuids_scores,其包含类似" 123_456"的值,是用户id的第一部分(123),第二部分(456)是存储的分数I为每个用户保留。
  • 一个实体可以有大约100 k uuids_scores值。

我尝试使用它的方式是:

我搜索uuids_scores:123_*的实体,然后获取我想要的实体列表。

然后我在答案中读取所有单个属性+ uuids_scores多值字段内的匹配值。

我在这个问题中找到了一种方法:How to filter values returned on a multivalued field in Solr

考虑到要求我的写作应该尽可能快,所以任何需要存储100k实体而不是一个实体的解决方案对我来说都不适用。

现在的问题是:有没有更好的模式来做我想要的?有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

尝试使用动态字段,索引字段可能类似于" uuids_scores_123"

<dynamicField name="uuid_scores_*" type="int" indexed="true"  stored="true" multivalued="true"/>

你可以查询&#34; uuids_scores_123:*&#34;并且只包括&#34; uuids_scores_123&#34;在返回的字段中。它只会有你想要的结果。