Solr字段名称规则?

时间:2018-04-14 07:09:32

标签: indexing solr lucene

抱歉新问题,我是索尔的新手。在托管模式中,我看到有许多字段具有相同的类型但名称不同。 Solr如何识别哪个字段存储令牌,因为类型都是相同但只有名称不同?例如,

<field name="content_type" type="text_general">
<field name="content_type_hint" type="text_general">
<field name="blitz" type="text_general">

它们都具有相同的类型(相同的分析仪)。 Solr如何将不同的内容存储到所有这些text_general字段中?他们是否用实际内容检查标签的名称?如果不相同,它会移动到动态字段?我在网上搜索过,似乎没有人详细提到名称是否有助于编制索引。

1 个答案:

答案 0 :(得分:1)

所以名字和类型是两回事。

<field name="content_type" type="text_general">

在上面的例子中,字段的名称是&#34; content_type&#34;这将用于搜索它。

例如,如果您想使用content_type =&#34; xml&#34;搜索docuemnt,您将查询类似这样的内容

  

Q = CONTENT_TYPE:XML

但是,type定义了在索引文档或将查询发送到索引时在字段上发生的分析。

因此,在模式中的某个位置,您将定义类型为text_general的字段类型。

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">

您可以在此处阅读更多相关信息 https://lucene.apache.org/solr/guide/6_6/field-type-definitions-and-properties.html

Solr不会将所有内容存储到类型字段中。 type field只是告诉它在索引或查询时在字段上运行什么分析。 每个字段都有自己的索引。

编辑: 我认为您对数据的索引方式感到困惑。让我们举个例子。

假设我有一个这样的文件

  

{

  "content_type" : "text/html",   
    "content_type_hint" : "some_hint",
    "blitz" : "some_text" 
     

}

因此,当您索引文档时,您将告诉solr您要将哪个字段放入什么值。

所以在这种情况下,您说字段content_type的值为"text/html"blitz的值为"some_text"

然后solr将根据该字段的类型进行一些分析,然后将其放入相应的索引。