代码之家  ›  专栏  ›  技术社区  ›  J. C

Solr字段名规则?

  •  1
  • J. C  · 技术社区  · 7 年前

    对不起,我是新来Solr的。在托管模式中,我看到有许多字段具有相同的类型,但名称不同。如果类型都相同,但只有名称不同,Solr如何确定存储令牌的字段?例如,

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

    它们都有相同的类型(相同的分析器)。Solr如何将不同的内容存储到所有这些text\u常规字段中?他们是否将标签名称与实际内容进行核对?如果不相同,它会转到动态场?我在网上搜索了一下,似乎没有人详细提到这个名字是否有助于建立索引。

    1 回复  |  直到 7 年前
        1
  •  2
  •   root    7 年前

    因此,名称和类型是两件不同的事情。

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

    在上述情况下,字段名称为“content\u type”,将用于搜索它。

    e、 g如果您想用content\u type=“xml”搜索文档,您将查询如下内容

    q=内容\u类型:xml

    但是,类型定义了在为文档编制索引或将查询发送到索引时对字段进行的分析。

    因此,在模式的某个地方,您将定义字段类型text\u 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不会将所有内容都存储到类型字段中。类型字段只是告诉它在索引或查询时在字段上运行什么分析。 每个字段都有自己的索引。

    编辑: 我想你对数据的索引方式感到困惑。让我们以的为例。

    假设我有一个这样的文档

    {

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

    }

    因此,当您为文档编制索引时,您将告诉solr您在哪个字段中输入了什么值。

    所以在这种情况下,你说的是场 content_type 有价值 "text/html" blitz 有价值 "some_text"

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