Apache solr:新的schema.xml或单个预定义的xml数据格式

时间:2015-09-07 00:15:43

标签: search solr

我正在尝试使用solr创建一个搜索引擎。因为我首先开始使用Wikipedia页面文章转储。

现在,当我几乎完成了一半的solrs文档时,却无法回答我的几个疑问?

1-我发现我需要创建schema.xml,使用它来执行数据的标记化和提取。对于一个数据源,它似乎很好,但是每次添加新数据源时都应该编写此schema.xml。

2-如果1的回答是肯定的(即你每次都需要写单独的schema.xml),那么每当我添加新的数据源时我都必须每次都添加新核心,这似乎是不切实际的。所以我的问题是谷歌, Bing和其他搜索引擎实现了它。

3-如果1的答案为否,那么可能的方式似乎是我可以将来自不同来源的信息转换为我将发送索引到Sorl的通用格式?

请告诉我搜索引擎是如何构建的?应该期待什么方法?

我正在为我的问题不断寻找一些文章,但没有获得有关该方法的相关信息。

1 个答案:

答案 0 :(得分:0)

在搜索领域,大多数数据都是非结构化或半结构化的。因此,定义单个通用模式将非常困难。我假设您必须对将要索引的所有不同类型的数据集的内容有一些公平的想法。这将使您对可以在solr模式配置中声明的基本/公共字段有所了解。

Solr使用Dynamic Fields为未知字段定义模式提供了极大的灵活性。 Dynamic Fields与所有方面的常规字段相同,除了它们的名称以wild-cards结尾。因此,它们可以容纳我们目前不知道的传入数据中的大量未知字段。以下内容可以为以 t 结尾的任何内容编制索引。

<dynamicField name="*_t" type="text_general" indexed="true" stored="true" />

另一种方法可能是使用solr的Schema-less模式。在此模式下,solr将继续猜测字段类型并将其添加到托管模式文件中。您甚至可以使用此方法来了解不同数据集的性质(架构),然后使用这些见解,为最终版本的产品创建接近稳定的架构。这可以帮助您在数据集中找到更多未知数。