2012-06-30 25 views
0

我拥有数百万个全文文档的SOLR索引。这工作得很好。到现在为止还挺好。SOLR中的文件夹

用户可以在文件夹或集合中组织这些文档。我希望能够将搜索限制到某个文件夹(或多个文件夹),而无需为每个文件夹创建索引。不同的用途可以将文档存储在不同的文件夹中,它不仅仅是一个位置的标签。

我打算通过添加一个多值字段来存储文档的文件夹(或集合)ID。

这是一种使用SOLR的“有效”方式,还是我错过了一些东西?另外,我是否会遇到有关多值字段中项目数量的限制?另外任何直接支持集合的替代搜索引擎将不胜感激。

+1

添加一个“集”属性每个文档,包括该提交用户搜索查询 –

+0

感谢@马克时,这几乎是我在想什么的。只是想确保我没有错过别的东西。 ;-) –

回答

1

拥有多值字符串给定文档所属目录的绝对路径字段。例如,文档可能属于documents/reports/fin/2012johns_stuff/to_read

一些疑问:

documents/reports/fin/2012 <-- belongs to a specific directory 
documents/reports/fin* <--any subdirectory of this directory 
+0

有趣的方法,但两个不同的用户可以有相同的文件夹名称(如重要的)。我想我可以使用用户名(user_a/important&user_b/important)创建一个文件夹树... –

+0

是的,你显然需要一种方法来**为不同的用户区分**。 – aitchnyu

1

目前还不清楚信息是否是每个用户。如果您需要每个用户的文件夹信息(也就是说,如果用户A将文档D设置在文件夹F中,则用户B在文件夹F中查找文档将无法找到它),那么您需要存储与用户相关的一些信息太。

我会建议使用一些名为user_A,user_B等的动态字段,并在appropiate用户字段中设置文件夹信息。

编辑:好的,那么马克的回复是好的。只记得在fq中使用'collection',所以它被缓存并在其他查询中重用。

+0

这些文件夹将被公开。任何用户都可以搜索任何文件夹中的任何文档。 –

相关问题