2015-03-02 44 views
1

過程中使用_version_場我有_version_字段的默認聲明我schema.xml中力Solr的不是搜索

<field name="_version_" type="long" indexed="true" stored="true" 
    multiValued="false"/> 

我讀過這個領域,僅在內部通過Solr的併發管理管理,但是當我搜索「002219」作爲回報時,我得到:

"docs": [ 
    { 
     "person_street_t": [ 
      "<streetName>", 
     ], 
     "id": "123", 
     "person_abbr_t": [ 
      "<sb>" 
     ], 
     "person_name_t": [ 
      "<sb>" 
     ], 
     "person_city_t": [ 
      "<city>" 
     ], 
     "person_zipcode_s": "<zipcode>", 
     "type_s": "PERSON", 
     "person_house_number_s": "<hn>", 
     "_version_": 1494523490022195200 
          //****** <- matched by Solr 
    } 
] 

但我不希望Solr搜索該字段。 這是正常行爲嗎?難道我做錯了什麼?或者有沒有其他方法可以在_version_字段中禁用搜索?

UPDATE:

好吧,我讀了一下,發現這個領域(_text)是defaultSearchField。因此,我所做的現在更改默認:

<copyField source="*" dest="_text"/> 

到:

<copyField source="*_t" dest="_text"/> 
    <copyField source="*_s" dest="_text"/> 
    <copyField source="*_ts" dest="_text"/> 
    <copyField source="*_ss" dest="_text"/> 

這些都是我的索引的唯一字段類型(*是由我添加_TS)。它會足夠嗎?

+1

什麼是默認搜索字段,其類型和類型定義?什麼是您確切的查詢網址? – arun 2015-03-02 19:57:04

+0

我沒有設置任何默認搜索字段,所以它必須設置爲Solr默認。我在工作中這樣做,所以明天我可以提供更多細節。 P.S.感謝您的關注:) – misko321 2015-03-02 21:12:53

+0

您的搜索處理程序是如何配置的?你的solrconfig.xml中有一個。 – cheffe 2015-03-03 11:59:43

回答

1

如果您使用示例模式,你極有可能不得不copyField定義副本的一切到一個文本場(schema.xml中定義)並搜索(solrconfig.xml中定義)。

這對開發很有用,但一切只是作爲文本搜索,可能不是你想要做的事情。

您可以調查切換到eDisMax之類的東西。或者,如果您還沒有完全準備好,則可以將更嚴格的copyField規則定義爲只彙總所需的字段。

+0

你說得對,我有:。但它是否需要?這是什麼聚合領域用於?如果我只是刪除它會不會好起來?所有的領域已經被索引爲「自己的」,不是嗎? – misko321 2015-03-04 06:46:46

+0

我用我的更改更新了問題。 – misko321 2015-03-04 08:27:08

+1

當前配置需要它,請在solrconfig.xml中查找** df **字段定義。 Solr爲您提供了很多搜索方式的靈活性,目前您正在使用最簡單的方式將所有東西網格化爲一個字段進行搜索。最終,您會希望從eDismax遷移到類似的東西。閱讀教程/參考指南瞭解更多信息。 – 2015-03-04 15:14:13