2011-11-02 38 views
1

我是solr的新手。我想搜索數據庫。我可以導入這些值並將其編入索引,但在搜索時似乎必須在搜索查詢中提及字段名稱,可以在不指定字段名稱的情況下完成。索爾數據導入搜索

回答

0

您可以將所有數據導入到default field。那麼你不需要明確提到字段名稱。 (雖然你仍然可以,如果你想)

默認schema.xml使用Solr已經包含了使用這種「包羅萬象」的領域的例子:

第一場將被聲明像任何其他領域:

<field name="text" type="text_general" indexed="true" 
     stored="false" multiValued="true"/> 

然後這個新字段必須被聲明爲默認字段。只要沒有特定的字段進行搜索,這將是一個搜索:

<defaultSearchField>text</defaultSearchField> 

你還需要一些copyField報表時複製所有現有油田到包羅萬象的領域:

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

之後,你可以不指定任何字段進行搜索的快捷方式。

+0

感謝您的快速響應。我只是想確認,如果我複製所有領域將導致性能問題。我的意思是由於複製域是兩次存儲的值。 – user1025397

+0

它會增加你的索引的大小,但不會增加搜索時間(與明確指出查詢中的所有字段相比)另外,由於'stored'參數爲false,原始數據不會被存儲,所以索引的增加應該適中。 –

+0

再次感謝你。最後但並非最不重要的我有三個不同的表,所有有不同的字段名稱,索引和搜索後,我得到搜索結果列表。從這裏我怎麼能區分不同的表格記錄? – user1025397