1

我是 solr 的新手。我想搜索数据库。我能够导入值并对其进行索引。但是在搜索时,似乎有必要在搜索查询中提及字段名称。如何在不指定字段名称的情况下完成它。

4

1 回答 1

0

您可以将所有数据导入默认字段。那么您不需要明确提及字段名称。(虽然如果你愿意,你仍然可以)

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"/>

之后,您可以在不指定任何字段的情况下执行搜索。

于 2011-11-02T10:44:54.960 回答