使用 apache solr 实现字典
Implement dictionary using apache solr
我必须使用 apache solr 4.8 实现字典,以便它可以在网站上用于单词定义。我已经为它定义了一个简单的 solr 模式。它的主要领域是
<field name="id" type="string" stored="true" indexed="true" required="true"/>
<field name="title" type="text_general" stored="true" indexed="true"/>
<field name="content" type="text_general" stored="true" indexed="false"/>
<field name="url" type="url" stored="true" indexed="true" />
搜索字段只有标题
它解决了我的问题,但存在问题。字典里有一些谚语also.There字典里也有一句谚语有钱有智慧。假设我输入 wealthy ,我希望 solr 应该给出确切词 wealthy 的结果,但实际上它也显示了谚语定义的结果。
如何解决?我应该更改模式还是应用一些过滤器?
注意:solr 字典的实际实现不是针对英语而是本地语言。但是我遇到了与上面解释的类似的问题。
您必须使用 keywordTokenizerFactory 定义新的字段类型。
Guide about tokenizer can be found from
here
像下面这样更改您的架构。
在 schema.xml 文件中
<fieldType name="exactstring" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
..........
..........
<field name="title" type="exactstring" indexed="true" stored="true" />
我必须使用 apache solr 4.8 实现字典,以便它可以在网站上用于单词定义。我已经为它定义了一个简单的 solr 模式。它的主要领域是
<field name="id" type="string" stored="true" indexed="true" required="true"/>
<field name="title" type="text_general" stored="true" indexed="true"/>
<field name="content" type="text_general" stored="true" indexed="false"/>
<field name="url" type="url" stored="true" indexed="true" />
搜索字段只有标题
它解决了我的问题,但存在问题。字典里有一些谚语also.There字典里也有一句谚语有钱有智慧。假设我输入 wealthy ,我希望 solr 应该给出确切词 wealthy 的结果,但实际上它也显示了谚语定义的结果。
如何解决?我应该更改模式还是应用一些过滤器?
注意:solr 字典的实际实现不是针对英语而是本地语言。但是我遇到了与上面解释的类似的问题。
您必须使用 keywordTokenizerFactory 定义新的字段类型。
Guide about tokenizer can be found from
here
像下面这样更改您的架构。 在 schema.xml 文件中
<fieldType name="exactstring" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>
..........
..........
<field name="title" type="exactstring" indexed="true" stored="true" />