2017-06-28 5 views
0

ブルーミックス・アカウントでディスカバリー・サービスを作成しました。私はnodejsアプリケーションから自分の文書を照会したい。IBM Bluemixディスカバリー - 照会パラメーター

いくつかの集計でクエリを作成し、bluemixオンラインツールを使用してテストしました。うまくいきました。

私のコードからコレクションを照会するとき、私のパラメータが何であれ、私はいつも豊富なテキストですべての私の文書を受け取ります。私はフィルタや集計のようなサービスにクエリ属性を送る方法がないと思う。

は、ここに私のコードです:

var queryParams = { 
    query:'CHLOE RICHARDS', 
    return:'title', 
    count:1, 
    aggregations:'nested(enriched_text.entities).filter(enriched_text.entities.type:Person).term(enriched_text.entities.text, count:5)' 
}; 

discovery.query({environment_id:that.environment_id, collection_id:that.collection_id, query_options:queryParams }, function(error, data) { 
    if(error){ 
    console.error(error); 
    reject(error); 
    } 
    else{ 
    console.log(JSON.stringify(data, null, 2)); 
    resolve(data.matching_results); 
    } 
}); 

そして結果は常にある:query_optionパラメータの値の

{ 
    "matching_results": 28, 
    "results": [ 
    { 
     "id": "fe5e2a38e6cccfbd97dbdd0c33c9c8fd", 
     "score": 1, 
     "extracted_metadata": { 
     "publicationdate": "2016-01-05", 
     "sha1": "28434b0a7e2a94dd62cabe9b5a82e98766584dd412", 
     "author": "Richardson, Heather S", 
     "filename": "whatever.docx", 
     "file_type": "word", 
     "title": "no title" 
     }, 
     "text": "...... 

Independantly。手伝って頂けますか?代わりにquery_options:queryParams

EDIT

、私はquery:"text:CHLOE RICHARDS"を使用している、それがうまく機能しています。

:今、私の問題は、まだ私は

EDIT 2

だから私はもっと慎重にIBM's example on Githubを見てきた、とパラメータは次のようにフォーマットされたい集計を追加するには、右のパラメータ形式を見つけるために残っています

const queryParams = { 
    count: 5, 
    return: 'title,enrichedTitle.text', 
    query: '"CHLOE RICHARDS"', 
    aggregations: [ 'nested(enriched_text.entities).filter(enriched_text.entities.type:Person).term(enriched_text.entities.text, count:5)' ], 
    environment_id: '1111111111', 
    collection_id: '11111111111' 
}; 

クエリ属性のみを使用するとうまく動作します。今ではaggregationsのみを使用すると、すべてのドキュメントが結果として返信されますが(わかります)、集計部分がないため、ドキュメント内の適切な名前のリストにアクセスできません。

答えて

0

質問が正しく表示されません。私は、あなたは、あなたがパラメータnatural_language_queryを設定しなければならない自然言語クエリを実行したい場合、あなたはtext:"CHLOE RICHARDS"

ようなクエリの検索を構築する必要がありますqueryを使用しようとしています。

+0

こんにちは!あなたの答えをありがとう。それはそれのように見えます。私は 'text:" CHLOE RICHARDS "を使って同じ結果を得ました。何かがある場合は、この要求は28ではなく1つの文書のみを返送する必要があります。 – nakurai

+0

また、[watson discovey APIリファレンス](https://www.ibm.com/watson/developercloud/discovery/api/v1/?node# query-collection)、クエリオプションの中に 'text'はありません。単に' query' ... – nakurai

+0

私はあなたの意図を理解し始めていると思います。私の質問の編集を見てください。クエリパラメータを使用して集計を追加しますか? – nakurai

関連する問題