我是solr的新手。我想搜索数据库。我可以导入值并将其编入索引。但是在搜索时,似乎需要在搜索查询中提及字段名称。可以在不指定字段名称的情况下完成。
答案 0 :(得分:0)
您可以将所有数据导入 default field 。那么您不需要明确提及字段名称。 (虽然你仍然可以,如果你想)
Solr的默认schema.xml
已包含使用此类“catchall”字段的示例:
首先,必须像任何其他字段一样声明该字段:
<field name="text" type="text_general" indexed="true"
stored="false" multiValued="true"/>
然后必须将此新字段声明为默认字段。每当搜索不到特定字段时,将搜索此字段:
<defaultSearchField>text</defaultSearchField>
您还需要一些copyField
语句,将所有现有字段复制到catchall字段中:
<copyField source="cat" dest="text"/>
<copyField source="name" dest="text"/>
<copyField source="my_special_field_1" dest="text"/>
<copyField source="my_special_field_2" dest="text"/>
...
因此,只要字段my_special_field_1
被编入索引,其值也会添加到text
字段。
作为一种快捷方式,您可以使用
将所有字段复制到text
字段中
<copyField source="*" dest="text"/>
之后,您可以在不指定任何字段的情况下执行搜索。