Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ContextField添加到SOLR suggester_Solr_Solr7 - Fatal编程技术网

将ContextField添加到SOLR suggester

将ContextField添加到SOLR suggester,solr,solr7,Solr,Solr7,我尝试在SOLR suggester中使用contextField(运行SOLR 7) 但是当我尝试构建建议时,我得到了一个错误 原因:java.lang.IllegalArgumentException:文档在field=“exacttext”(其UTF8编码长度超过最大长度32766)中至少包含一个巨大的术语,所有这些术语都被跳过。请更正分析器,使其不产生此类术语。第一个词的前缀是 但是,在我的整个设置中没有名为exacttext的字段 当我使用FreeTextLookupFactory时,

我尝试在SOLR suggester中使用contextField(运行SOLR 7)

但是当我尝试构建建议时,我得到了一个错误

原因:java.lang.IllegalArgumentException:文档在field=“exacttext”(其UTF8编码长度超过最大长度32766)中至少包含一个巨大的术语,所有这些术语都被跳过。请更正分析器,使其不产生此类术语。第一个词的前缀是

但是,在我的整个设置中没有名为
exacttext
的字段

当我使用FreeTextLookupFactory时,这不会发生,但是我当然不能使用contextField

我试着加上

<filter class="solr.LengthFilterFactory" min="2" max="32700"/>

以及

<filter class="solr.TruncateTokenFilterFactory" prefixLength="100"/>

到托管模式,但这也不起作用

以下是我尝试使用的searchComponent:

<searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester">
      <str name="name">mySuggester</str>
      <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
      <str name="dictionaryImpl">DocumentDictionaryFactory</str>
      <str name="field">suggestText</str>
      <str name="highlight">false</str>
      <str name="storeDir">mySuggester</str>
      <str name="separator"> </str>
        <str name="suggestAnalyzerFieldType">suggestField</str>
      <str name="buildOnCommit">false</str>
      <str name="buildOnStartup">false</str>
        <str name="contextField">context_field</str>
    </lst>
</searchComponent>

我的建议者
解析固定查找工厂
文档字典工厂
建议文本
假的
我的建议者
暗示场
假的
假的
上下文字段
这是托管架构中建议者的配置:

<fieldType name="suggestField" class="solr.TextField" positionIncrementGap="100">
    <analyzer>

        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" catenateWords="1" generateNumberParts="0" splitOnCaseChange="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.LengthFilterFactory" min="2" max="32700"/>
        <filter class="solr.TruncateTokenFilterFactory" prefixLength="100"/>
    </analyzer>
</fieldType>

--田野的部分---



您可能需要完全删除索引,并在进行这些更改后重新编制索引-您可能只需重新编制索引,然后发出优化命令(或者,如果您真幸运的话,只需发出优化命令,即可正确重写索引,而不必删除已删除文档中的旧字段)。谢谢Mats。实际上我已经试过重新编制索引了。但可能我没有应用正确的更改(尝试/错误太多)。我再试试,你可以参考
<field name="ID" type="text_general" indexed="true" stored="true"/>
    <field name="TITLE" type="tokenized" indexed="true" stored="true"/>
    <field name="ANRISS" type="tokenized" indexed="true" stored="true"/>
    <field name="LEAD" type="tokenized" indexed="true" stored="true"/>
    <field name="BODY" type="tokenized" indexed="true" stored="true"/>
    <field name="PDFDOC" type="text_general" indexed="true" stored="true"/>
    <field name="MAGID" type="text_general" indexed="true" stored="true"/>
    <field name="MAGNAME" type="text_general" indexed="true" stored="true"/>
    <field name="MAGISSUE" type="text_general" indexed="true" stored="true"/>
    <field name="ARTICLETYPE" type="text_general" indexed="true" stored="true"/>
        <field name="IS_FREE" type="text_general" indexed="true" stored="true" />
        <field name="THEMA" type="text_general" indexed="true" stored="true"/>
    <field name="CREATIONDATE" type="pdate" indexed="true" stored="true"/>
    <field name="LASTUPDATE" type="pdate" indexed="true" stored="true"/>

    <copyField source="TITLE" dest="fulltext" />
    <copyField source="ANRISS" dest="fulltext" />
    <copyField source="LEAD" dest="fulltext" />
    <copyField source="BODY" dest="fulltext" />

    <field name="fulltext" stored="true" type="tokenized" multiValued="true" indexed="true" />

    <copyField source="TITLE" dest="suggestText" />
    <copyField source="ANRISS" dest="suggestText" />
    <copyField source="LEAD" dest="suggestText" />
    <copyField source="BODY" dest="suggestText" />

    <field name="suggestText" stored="true" type="text_general" multiValued="true" indexed="true" />

    <copyField source="MAGID" dest="context_field" />
    <copyField source="ARTICLETYPE" dest="context_field" />

    <field name="context_field" stored="true" type="suggestField" multiValued="true" indexed="true" />