2014-05-06 27 views
0

如何使用RESTFul API在Open Search Server中使用方面過濾搜索結果?在Open Search Server上使用RESTFul API進行過濾

我使用以下網址(搜索領域的模板,我的模板被命名爲「搜索」,我從代理的Apache /搜索到Tomcat): http://domain.com:8080/search/services/rest/index/intranet/search/field/search

以下JSON的工作原理:

$json = ' 
{ 
    "query": "OSH", 
    "start": 0, 
    "rows": 10, 
    "lang": "ENGLISH" 
}'; 

我有一個方面名爲lang,顯示值"en"有450個文檔。所以,我想這(基於渲染器功能):

$json = ' 
{ 
    "query": "OSH&fq=lang%3A\\"en\\"", 
    "start": 0, 
    "rows": 10, 
    "lang": "ENGLISH" 
}'; 

事實證明,在字符串的所有條款解析,並添加到查詢,而不是:

public 'query' => string '(+title:osh^10.0 +title:fq^10.0 +title:lang^10.0 +title:3a^10.0 +title:en^10.0) title:"osh fq lang 3a en"^10.0 (+titleExact:osh^10.0 +titleExact:fq^10.0 +titleExact:lang^10.0 +titleExact:3a^10.0 +titleExact:en^10.0) titleExact:"osh fq lang 3a en"^10.0 (+titlePhonetic:oS^10.0 +titlePhonetic:fk^10.0 +titlePhonetic:lank^10.0 +(titlePhonetic:a^10.0 titlePhonetic:i^10.0) +(titlePhonetic:en^10.0 titlePhonetic:jen^10.0)) titlePhonetic:"oS fk lank"^10.0 (+content:osh +content:fq +content:lang +content:3a +content:e'... (length=1669) 

我在開搜索服務器1.53

回答

1

您可以使用JSON中的filters數組篩選搜索,如​​所示。

例如:

{ 
    "query": "OSH", 
    "start": 0, 
    "rows": 10, 
    "lang": "ENGLISH", 
    "filters": [ 
     { 
     "type": "QueryFilter", 
     "negative": false, 
     "query": "lang:en" 
     } 
    ] 
} 

你會發現this page更多信息。

相關問題