Solr联想词袋配置

前言

常用的搜索引擎的联想功能就如下图所示,虽然实现的方式有很多,但是这里还是要说明一下solr是如何实现这块功能的。

你想输入的替代文字

具体配置

其实和上一篇配置相同,首先创建一个提供联想功能的核心。然后为这个核心配置好数据源,即在solrconfig.xml中配置好相应的dataImport模块,以及data-config.xml的生成配置。

上述的步骤在上篇博客中有详细的描述。完成上述的步骤之后,需要在solrconfig.xml中再配置好suggest模块。只需要改变配置中的word为你的字段即可。word

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!-- 搜索建议 -->
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="field">word</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>

</lst>
</searchComponent>

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
<str name="suggest.dictionary">mySuggester</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>

managed-schema中字段的配置如下:

1
2
<field name="id" type="string" indexed="true" stored="true" required="true"  multiValued="false" />
<field name="word" type="string" indexed="true" stored="true" required="false" multiValued="false" />

具体使用

选择对应的核心,然后把使用/suggest的功能,输入查询的字段,就可以查出联想词。

你想输入的替代文字