Solr:需要动态创建字段

Solr:需要动态创建字段,solr,Solr,我将solr视为文档集合的搜索引擎,我们事先不知道文档中数据项的类型。这可能吗?好的,这可能很清楚,所以这里有一个例子 用户可以动态创建文档类型。因此,他们可能会为具有字段名称(文本字符串)、年龄(非负数)和性别(布尔值)的人创建文档类型。另一个用户可能会使用make(文本字符串)、enginesize(非负数)和neworused(布尔值)为汽车创建另一种文档类型 我们可以使用whoosh(一个python搜索引擎)来处理这个问题,方法是为每种文档类型创建一个单独的whoosh模式,因此我们将

我将solr视为文档集合的搜索引擎,我们事先不知道文档中数据项的类型。这可能吗?好的,这可能很清楚,所以这里有一个例子

用户可以动态创建文档类型。因此,他们可能会为具有字段名称(文本字符串)、年龄(非负数)和性别(布尔值)的人创建文档类型。另一个用户可能会使用make(文本字符串)、enginesize(非负数)和neworused(布尔值)为汽车创建另一种文档类型

我们可以使用whoosh(一个python搜索引擎)来处理这个问题,方法是为每种文档类型创建一个单独的whoosh模式,因此我们将为第一种文档类型创建一个模式,指定要索引的字段和相应的whoosh数据类型(我们可以在以后不再需要时销毁该模式)

我能和索尔做点像这样的事吗?顺便说一句,更改schema.xml以添加新的字段类型不是一个选项:文档类型是完全动态的,它们的字段在创建后可能会更改,并且可能有成千上万的字段


希望这有意义!这可能是微不足道的,所以请接受Solr noob的道歉。

如果我在你的位置,我可能会使用Solr的无模式模式。在这种情况下,除了id(可选)和版本字段外,您不需要为文档提供完整的模式。您需要在
solrconfig.xml
中使用
ManagedIndexSchemaFactory
作为
schemaFactory
。随着文档被索引,这将继续向
schema.xml
添加字段。您需要在
solrconfig.xml
中的
/update
requestHandler中包含额外的更新链。有关更多信息,请使用以下来源



这在具有动态字段的Solr中已经支持了很长时间。事实上,如果您查看示例(例如techproducts),您将看到_s、_ss等动态字段定义

因此,您只需使用后缀(或前缀)来命名字段,以指示类型,它就可以正常工作

下一个问题是搜索哪些字段。在示例模式中,它是通过将所有这些复制到泛型字段并使用该字段来完成的,但灵活性较低


您可能希望改用eDisMax并显式指定字段列表。或者,使用-recent-动态保存这些字段列表。

谢谢。这看起来确实像我要找的:)