当前位置: 首页 > 面试题库 >

将文档ID写入索引的异常;可能的分析错误

西门梓
2023-03-14
问题内容

在索引文档时出现上述错误。

<field name="a_suggest" type="my_suggest_field" indexed="true" stored="false"/>
<field name="b_suggest" type="my_suggest_field" indexed="true" stored="false" />
<field name="c_suggest" type="my_suggest_field" indexed="true" stored="false"/>

  <fieldType name="my_suggest_field" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.EdgeNGramFilterFactory" maxGramSize="10" minGramSize="2"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
  </fieldType>

而且打电话时出现错误。

server.add(documents);

首先, 可能的分析错误 是什么意思?与my_suggest_field索引分析器有关吗?是由于令牌,索引分析器中的过滤器的顺序导致的吗?

谢谢。


问题答案:

我需要为EdgeNGramFilterFactory常规建议创建一个单独的字段类型。

  <field name="my_suggest" type="my_suggest_field" indexed="true" stored="false"/>
  <field name="my_suggest_ngram" type="my_suggest_ngram_field" indexed="true" stored="false"/>

  <fieldType name="my_suggest_field" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <filter class="solr.LowerCaseFilterFactory" />
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
  </fieldType>

  <fieldType name="my_suggest_ngram_field" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <filter class="solr.LowerCaseFilterFactory" />
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="10"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory" />
            <filter class="solr.LowerCaseFilterFactory" />
        </analyzer>
  </fieldType>


 类似资料:
  • 我试图检索一个索引中的所有文档,但只得到_id字段。 基本上,我想检索我拥有的所有文档ID。 使用时: 我得到的命中包含:" _index "、" _type "、" _id "、" _score "、" _source ",这比我需要的要多得多。 编辑(回答):所以我的问题是我使用KOPF来运行查询,结果不准确(得到了_source等等…)!当使用curl时,我得到了正确的结果! 所以上面的查询

  • null:java.lang.nullPointerException at org.apache.solr.response.transform.childDocTransformer.transform(ChildDocTransformerfactory.java:136)at org.apache.solr.handler.component.realtimeGetComponent.pr

  • 当你要在 Elasticsearch 增加文档时,你就需要索引 JSON 文档。JSON 文档会映射 PHP 关联数组,因为 PHP 关联数组可以 encode 为 JSON 数据格式。 因此在 Elasticsearch-PHP 中你可以传递关联数组给客户端来索引文档。我们会概述几种方法来增加文档到 Elasticsearch。 单一文档索引 当索引一个文档时,你可以提供一个 ID 或者让 El

  • 今天我想从SQLCe转到MongoDB。我下载了驱动程序,并在我的电脑上运行本地服务器。 以下是我的实际代码(顺便说一句,我甚至不知道将IMongoCollection转换为MongoCollection是否安全): 但是,每当我试图运行该程序时,就会出现以下错误:“System”类型的未处理异常。木卫一。mscorlib中发生FileNotFoundException。动态链接库 其他信息:无法

  • 当我使用JavaMailSender发送带有附件的电子邮件时,它总是失败,并引发以下异常: 这是我的密码