使用 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" />