这是我在 schema.xml 中尝试过的。
对于领域..
<field name="level" type="text_general" indexed="true" stored="true"/>
<field name="domain" type="text_general" indexed="true" stored="true"/>
<field name="open" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true"/>
<field name="type" type="text_general" indexed="true" stored="true"/>
<field name="sdiv" type="text_general" indexed="true" stored="true"/>
<field name="tag1" type="text_general" indexed="true" stored="true"/>
<field name="tag2" type="text_general" indexed="true" stored="true"/>
<field name="tag3" type="text_general" indexed="true" stored="true"/>
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
我正在使用复制字段将所有内容复制到文本字段..
<copyField source="level" dest="text"/>
<copyField source="domain" dest="text"/>
<copyField source="open" dest="text"/>
<copyField source="description" dest="text"/>
<copyField source="type" dest="text"/>
<copyField source="sdiv" dest="text"/>
<copyField source="tag1" dest="text"/>
<copyField source="tag2" dest="text"/>
<copyField source="tag3" dest="text"/>
也只有
<copyField source="*" dest="text"/>
而不是许多复制字段。我已将“文本”定义为默认字段。
但是当我搜索任何文本时,查询仅在文本位于描述字段中而不在其他字段(如 tag1,2,3 ,类型,sdiv 等)中有效。我认为这是因为描述已经存在于模式文件中默认和其他字段由我定义..
这是我在模式文件中用来覆盖 solrconfig 文件的代码...
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
</lst>
</requestHandler>
<requestHandler name="/query" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="wt">json</str>
<str name="indent">true</str>
<str name="df">text</str>
</lst>
</requestHandler>