【问题标题】:Problem for posting documents in solr core在 solr core 中发布文档的问题
【发布时间】:2019-06-17 09:29:12
【问题描述】:

我正在为 solr 核心中的文档编制索引,但有些文档没有编制索引。我不知道为什么这些没有索引。

当我索引一个字符串,然后是字符串的标记时, 那么只有标记被索引但整个文本不是 索引。而如果我以相反的顺序索引:首先是文本的标记,然后是文本,那么文本将是索引..

当我在索引文档时

{"detected_language":"hi","searchstring":"कपड़ा धोने की 
मशीन","translated_text":"washing machine"},
{"detected_language":"hi","searchstring":"कपड़ा","translated_text":" 
"},
{"detected_language":"hi","searchstring":"धोने","translated_text":" 
"},
{"detected_language":"hi","searchstring":"की","translated_text":" 
"},
{"detected_language":"hi","searchstring":"मशीन","translated_text":" 
"}

那么只有 4 个文档在 solr 核心中被索引,而不是 5 个文档。而这4个文件是{कपड़ा ,धोने ,की,मशीन}。

但是当我像这样进行索引时:

{"detected_language":"hi","searchstring":"कपड़ा","translated_text":" 
"},
{"detected_language":"hi","searchstring":"धोने","translated_text":" 
"},
{"detected_language":"hi","searchstring":"की","translated_text":" 
"},
{"detected_language":"hi","searchstring":"मशीन","translated_text":" 
"},
{"detected_language":"hi","searchstring":"कपड़ा धोने की 
मशीन","translated_text":"washing machine"}

然后所有 5 个文档都将被索引。

我使用过这些字段:

<field name="searchstring" type="string_hi" indexed="true" 
stored="true" required="true" omitNorms="true" multiValued="false" 
/>
<field name="detected_language" type="string"  indexed="true" 
stored="true" omitNorms="true" multiValued="false"/> 
<field name="translated_text" type="string"  indexed="true" 
stored="true" omitNorms="true" multiValued="false"/>

搜索字符串的字段类型为:

<fieldType name="string_hi" class="solr.TextField" positionIncrementGap="100"> 
  <analyzer type="query">
    <charFilter class="solr.HTMLStripCharFilterFactory"/>
    <tokenizer class="solr.StandardTokenizerFactory"/>
  </analyzer>
</fieldType>

我希望所有的搜索字符串都是索引..

【问题讨论】:

  • 您的uniqueKey 字段是什么?我最初的猜测是您已将 uniqueKey 字段设置为已分析的字段类型,因此两个字符串中的 कपड़ा 最终会覆盖前一个。
  • uniqueKey 是搜索字符串。

标签: solr


【解决方案1】:

文档的uniqueKey 永远不应该是一种分析类型——至少不是以多个标记结尾的类型(所以除了可能的KeywordTokenizer 之外没有标记器)。您最终会遇到现有文档将被覆盖的问题。

创建id字段为string,设置为uniqueKey字段,然后使用copyField将searchstring的内容复制到id。

【讨论】:

    猜你喜欢
    • 2014-04-30
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多