SOLR层配置

将文档映射到层

SOLR索引几乎是自由格式的文档,SOLR实例有一个字段集合,并且每个文档可以包含任意组合的字段。另一方面,geoserver以固定结构要素类型组织数据,并在单独的层中公开数据。这就留下了索引中的文档应该如何组织成层的问题。

默认情况下,存储暴露一个单独的层,通常以存储连接到的solr集合命名,通过发布它,可以决定要包含哪些字段,并最终添加一个过滤器来选择将包含哪些属性。

此单个层可以发布多次,为每个已发布层提供不同的名称、所选属性集和不同的过滤器,以选择层中包含的文档。

安装Solr延长件

  1. 从下载Solr扩展 nightly GeoServer community module builds

    警告

    确保将扩展的版本与geoserver实例的版本匹配。

  2. 如果geoserver正在运行,请停止它。

  3. 将存档的内容提取到 WEB-INF/lib 地理服务器安装目录。

  4. 重新启动geoserver,在执行新的存储创建工作流时,solr数据存储应该显示为一个选项。

连接到Solr服务器

正确安装扩展后 SOLR 将在创建新数据存储时显示为选项。

../../_images/solr_store.png

矢量数据源列表中的solr

配置Solr数据存储

../../_images/solr_configuration.png

配置Solr数据存储

solr_url

提供到提供文档的Solr服务器的链接

输入并确认参数后,geoserver将联系solr服务器并获取层名称列表,并相应地填充层选择器页面:

../../_images/solr_layerlist.png

SOLR服务器中可用层的列表

配置新的solr基础层

选择图层名称后,将显示常规图层配置面板,在表格中弹出可用字段:

../../_images/solr_fieldlist.png

层字段列表配置

Is empty

只读字段,如果该字段在与此层关联的文档中没有值,则选中

Use

用于选择将构成此层功能的字段

Name

字段的名称

Type

从SOLR架构派生的字段类型。对于几何图形类型,可以选择提供更具体的数据类型

SRID

几何图形的本机空间引用ID

Default geometry

指示几何字段是否为默认字段。如果文档包含多个几何字段,则很有用,因为除非另有指定,否则SLD和空间过滤器将命中默认的几何字段。

Identifier

检查该字段是否可用作功能标识符

默认情况下,列表将只包含与层关联的文档中至少有一个非空值的字段,但可以通过取消选中“如果为空则隐藏字段”复选框来获取完整列表:

../../_images/solr_fieldlist_all.png

显示SOLR中可用的所有字段

在表格中填入所有需要的参数后,按“应用”按钮确认并返回到主层配置面板。如果要修改字段选择,可以单击“功能类型详细信息”面板下方的“配置SOLR字段”。

../../_images/solr_fieldlist_edit.png

返回字段列表编辑器

层配置的其余部分正常工作,一旦提供了所有字段,您就可以在WMS和WFS中保存和使用层。

警告

为了计算边界框,geoserver必须从solr中提取构成层的所有几何图形,此操作可能需要一些时间,建议在从大型文档集配置层时手动输入本机边界框。

习俗 qfq 参数

SOLR存储将使用 fq 参数。但是,在某些情况下,您可能需要手动指定 qfq 利用一些不能通过OGC过滤器表达的本地solr过滤能力。

这可以通过将它们指定为 viewparams 类似于关系数据库上的参数化SQL视图。

例如,以下URL::

http://localhost:8080/geoserver/nurc/wms?service=WMS&version=1.1.0&request=GetMap
     &layers=nurc:active&styles=geo2&bbox=0.0,0.0,24.0,44.0&width=279&height=512
     &srs=EPSG:4326&format=application/openlayers
     &viewparams=fq:security_ss:WEP

将向solr发送一个如下所示的查询:

omitHeader=true&fl=geo,id&q=*:*&rows=2147483647&sort=id asc
&fq=status_s:active AND geo:"Intersects(POLYGON ((-0.125 -0.5333333333333333, -0.125 44.53333333333333,
24.125 44.53333333333333, 24.125 -0.5333333333333333, -0.125 -0.5333333333333333)))"
&fq=security_ss:WEP&cursorMark=*

您可以注意到:

  • 仅检索显示所需的列(在本例中是单个几何图形)

  • bbox和层标识过滤器在第一个 fq

  • 该习俗 fq 是作为秒传递的 fq 参数(Solr会将其视为与前一个参数进行AND运算)