2017-06-01 15 views
0

我的目標是檢索Solr索引中的JSON類型字段,並對這些字段執行搜索查詢。如何檢索和查詢Apache Solr中的JSON類型字段6.5

我在Solr索引中使用以下文檔,並使用Solr中使用無模式特性的自動生成模式。

POST http://localhost:8983/solr/test1/update?commitWithin=1000

[ 
    {"id" : "1", "type_s":"book", "title_t" : "The Way of Kings", "author_s" : "Brandon Sanderson", 
"miscinfo": {"provider": "orielly", "site": "US"} 
}, 
{"id" : "2", "type_s":"book", "title_t" : "The Game of Thrones", "author_s" : "James Sanderson", 
"miscinfo": {"provider": "pacman", "site": "US"} 
} 
] 

我看到了JSON類型存儲爲所看到的輸出以下

GET http://localhost:8983/solr/test1/schema/fields

{ 
     "name":"miscinfo", 
     "type":"strings"} 

我用曾試圖在schemaField類型字符串如post中所述的srcField。但是,檢索json類型的查詢將返回空響應。下面是用於相同

GET請求GET http://localhost:8983/solr/test1/select?q=1&fl=miscinfo&wt=json

GET http://localhost:8983/solr/test1/select?q=1&fl=miscinfo,source_s:[json]&wt=json

另外,JSON類型字段內的值的搜索查詢返回空響應

http://localhost:8983/solr/test1/select?q=pacman&wt=json

{ 
    "responseHeader": { 
    "status": 0, 
    "QTime": 0, 
    "params": { 
     "q": "pacman", 
     "json": "", 
     "wt": "json" 
    } 
    }, 
    "response": { 
    "numFound": 0, 
    "start": 0, 
    "docs": [] 
    } 
} 

請幫助搜索Solr中的對象類型。

回答

0

你檢查這一點:https://cwiki.apache.org/confluence/display/solr/Response+Writers

JSON響應作家一個非常常用的響應作家是 JsonResponseWriter,其格式輸出以JavaScript對象符號 (JSON),一種輕量級的數據交換格式指定在RFC 4627中的指定 中。將wt參數設置爲json調用此響應 Writer。下面是一個簡單的查詢的響應示例像 Q = ID:VS1GB400C3 &重量= JSON:

+0

我已經檢查這個鏈接,並已經在使用重量= JSON獲得JSON響應。不過,我在從JSON類型的索引數據中檢索字段時遇到了問題。 – FindingTheOne

+0

我看到的唯一區別是indent = true,但我不認爲這應該是原因...在這裏搜索我發現這個: https://cwiki.apache.org/confluence/display/solr/Transforming+和+索引+自定義+ JSON 它設置爲:「-H'內容類型:應用程序/ json'-d'」 – leonardo

+0

是的,我沒有看到任何添加indent = true後的輸出差異HTTP請求 – FindingTheOne