在Solr Core中过帐文档的问题

时间:2019-06-17 09:29:12

标签: solr

我正在solr core中对文档建立索引,但是有些文档没有建立索引。我不知道为什么这些没有索引。

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

当我索引文档时

{"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":" 
"}

然后在solr core中仅索引4个文档,而不是5个文档。这四个文档是{कपड़ा ,धोने ,की,मशीन}

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

{"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是:

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

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

1 个答案:

答案 0 :(得分:1)

文档的uniqueKey绝不能是分析类型-至少不是以多个标记结尾的类型(因此,除可能KeywordTokenizer外,没有标记器)。您最终会遇到一个问题,否则现有文档将被覆盖。

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

相关问题