配置分面搜索¶
刻面原理¶
分面搜索提供了一种轻松筛选搜索的方法。
存在两种类型的面:
简单方面(仅值列表)
层次方面(价值的分类树)需要有关系的同义词表。
搜索时的方面响应¶
当运行搜索时 resultType
参数定义一组要返回的方面。
方面响应如下所示:
<response from="1" to="20" selected="0">
<summary count="134" type="local">
<dimension name="type" label="types">
<category value="dataset" label="Dataset" count="86"/>
<category value="series" label="Series" count="41"/>
<category value="service" label="Service" count="7"/>
</dimension>
<dimension name="denominator" label="denominators">
<category value="200000" label="200000" count="1"/>
<category value="50000" label="50000" count="1"/>
<category value="25000" label="25000" count="1"/>
<category value="15000" label="15000" count="4"/>
<category value="10000" label="10000" count="1"/>
<category value="5000" label="5000" count="3"/>
<category value="2000" label="2000" count="12"/>
</dimension>
<dimension name="resolution" label="resolutions">
<category value="5 m" label="5 m" count="10"/>
<category value="1 m" label="1 m" count="3"/>
<category value="0.20 m" label="0.20 m" count="1"/>
</dimension>
</summary>
用户可以通过添加 _content_type=json
在参数列表中。
配置¶
方面配置在中手动完成 WEB-INF/config-summary.xml
. 更改后,停止应用程序,删除索引并启动应用程序以完全重建索引。
方面基于索引中的字段(请参见 配置搜索字段 )
要索引的每个方面在 facets
元素。facets元素列出了要索引的facets,以及如何使用facet元素上的属性对它们进行索引,如下所示:
name:方面的名称
indexKey:用于方面的索引字段的名称
label:返回摘要中用于方面的标签
(可选)classifier:对spring bean的引用,应用于确定索引字段的facet值。用于层次化方面。bean必须实现网址:org.fao.kernel.搜索.classifier.classifier接口默认为使用要索引的字段值的分类器
本地化:todo文档
对于一个简单的方面
<facet name="denominator"
indexKey="denominator"
label="denominators"/>
基于叙词表的层次方面。
定义方面
<facet name="gemetKeyword"
label="gemetKeywords"
indexKey="keyword"
classifier="gemetKeywordClassifier"/>
在中注册分类器
WEB-INF/config-spring-geonetwork.xml
<bean id="gemetKeywordClassifier"
class="org.fao.geonet.kernel.search.classifier.TermLabel" lazy-init="true">
<constructor-arg name="finder" ref="ThesaurusManager"/>
<constructor-arg name="conceptScheme" value="http://geonetwork-opensource.org/gemet"/>
<constructor-arg name="langCode" value="eng"/>
</bean>
将方面添加到摘要类型(请参见下文)
在 summaryTypes
元素。使用以下命令创建新的方面集:
<summaryTypes>
<summaryType name="details" format="DIMENSION">
格式属性设置为 DIMENSION
是具有顶级维度标记和子类别类别类别标记的首选格式,这些标记更适合层次化方面。它还支持一个级别的方面。
the 版后已移除: 格式 FACET_NAME
(仍然是默认值)仅用于使用一个级别生成方面摘要元素。不建议使用此模式。
这个 summaryTypes
元素包含 summaryType
元素中的每一个元素都定义了可为服务配置的方面摘要。每个 summaryType
元素包含面列表 (item
)要返回,以及它们的格式应如下所示:
facet:上面定义的facet的名称
(可选)sortBy:方面的顺序。默认为按计数。
(可选)sortOrder:asc或desc。默认值是后代。
(可选)max:要为方面返回的值的数目。默认为10。
(可选)深度:应将层次方面汇总到的深度。默认为1。
(可选)转换器:定义DB转换器以从描述表(例如类别)检索标签,或定义代码列表转换器从模式代码列表文件检索标签。
例如,对于类别
<item dimension="category"
plural="categories"
indexKey="_cat"
max="45"
translator="db:org.fao.geonet.repository.MetadataCategoryRepository:findOneByName"/>
或为团体
<item dimension="groupOwner"
plural="groupOwners"
indexKey="_groupOwner"
max="99"
sortBy="value"
translator="db:org.fao.geonet.repository.GroupRepository:findOne:int"/>