我无法在solr上创建text_general_edge_ngram字段

时间:2012-11-02 23:54:16

标签: tomcat solr tokenize

我想在solr上搜索一个字段,在编写之前我搜索了很多,我的问题是我将fieldType名称块添加到我的schema.xml中,但是当我尝试定义一个字段时,solr给了我一些错误,这是我的fieldType代码,

<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.LowerCaseTokenizerFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.LowerCaseTokenizerFactory"/>
        </analyzer>
    </fieldType>

这些是我尝试添加到schema.xml的字段

<field name="name" type="edge_ngram" indexed="true" stored="true"/>
<field name="name" type="edgengram" indexed="true" stored="true"/>
<field name="name" type="ngram" indexed="true" stored="true"/>
<field name="name" type="text_general_edge_ngram" indexed="true" stored="true"/>

我是新手解决任何帮助都会很棒,谢谢。

1 个答案:

答案 0 :(得分:0)

重新阅读你的问题后,我看到了问题。您不能拥有四个具有相同名称的字段。如果您确实需要上面定义的所有四个字段,我会将它们更改为以下字段:

 <field name="name1" type="edge_ngram" indexed="true" stored="true"/>
 <field name="name2" type="edgengram" indexed="true" stored="true"/>
 <field name="name3" type="ngram" indexed="true" stored="true"/>
 <field name="name4" type="text_general_edge_ngram" indexed="true" stored="true"/>

架构文件中字段的实际名称必须是唯一的。