查詢概觀
IBM Watson® Discovery 透過搜尋查詢提供強大的內容搜尋功能。
若要在汲取、檢索及強化資料之後從 Discovery 擷取資料,請提交查詢。
當資料新增至 Discovery時,每一個檔案的表示法會以 JSON 格式的文件儲存在索引中。 套用至集合的強化會識別資料中有意義的資訊,並將它儲存在這些文件的新欄位中。 若要搜尋資料,請提交查詢以傳回最相關的文件,並擷取您正在尋找的資訊。
查詢類型
Discovery 接受下列其中一個支援的查詢類型:
- 查詢
-
在文件的特定欄位中尋找感興趣值的文件。 此類型的查詢使用 Discovery 查詢語言語法來定義搜尋準則。
Parameter name:
query - 自然語言查詢 (NLQ)
-
尋找以自然語言撰寫之查詢的答案。 NLQ 要求接受字串值。
Parameter name:
natural_language_query
除了您使用其中一個支援的查詢類型指定的查詢之外,您還可以包括下列其中一個或兩個參數。 也可以使用 Discovery 查詢語言 (DQL) 語法來指定這些參數的值:
filteraggregation
如需 Discovery 查詢語言的相關資訊,請參閱 DQL 概觀。
從產品使用者介面提交的查詢是自然語言查詢。 會指定一些其他支援的參數,並根據使用中的專案類型來提供預設值。 如需相關資訊,請參閱 預設查詢設定。
Discovery 不會記載查詢要求資料。 您無法接受要求記載。
選擇正確的查詢類型
下表彙總每一種查詢類型所支援的功能。 請使用它來協助您決定要提交的查詢類型。
| 目標 | 自然語言查詢 (NLQ) | Discovery 查詢語言 (DQL) |
|---|---|---|
| 從文件傳回段落 | ||
| 強調顯示回應中的術語 (除非啟用每份文件的段落) | ||
| 定義自訂停止字組或查詢擴充 | ||
| 搜尋特定文件欄位或強化 | ||
| 在搜尋中使用運算子,例如布林子句 | ||
| 啟用拼字更正 | ||
| 新增策展以將寫在程式中的回答傳回特定問題 | ||
| 使用相關性訓練 | ||
| 啟用回答發現項目以從段落傳回簡潔回答 | ||
| 使用表格擷取 |
查詢分析
當您提交查詢時,會分析查詢字串。 在查詢分析期間,會識別查詢中每一個索引鍵術語的根 (或詞目)。 會移除原始查詢字串中出現的任何停止字組,並新增針對原始查詢字串中出現的任何術語所定義的同義字擴充。 這個加強型查詢版本是提交給 Discovery的內容。
不論是以自然語言查詢或使用「探索查詢語言」語法來提交查詢,都會對所有查詢執行相同的分析。
查詢流程
下圖顯示 Discovery如何處理搜尋要求的概念性圖解。
流程圖中顯示下列程序:
- BM25
- 使用 Best Match 25 (機率資訊擷取演算法) 來計算搜尋所傳回之每一個文件的相關性評分。 此圖顯示 BM25 會套用至查詢要求的文件結果,但不限於查詢要求。 它也會與其他技術一起使用,作為套用至自然語言查詢結果之相關性訓練排序器處理程序的一部分。
- 策展
- 如果自然語言查詢符合預先定義的策劃查詢,則會傳回某些文件,並可能傳回寫在程式中的 Snippet。 沒有可啟用策劃的查詢參數。 若要使用策展,您必須以程式化方式定義它們 (建立策展方法)。 任何策展的輸出都會與「相關性」訓練排序器或 QPP 結果的輸出合併。
- 相關性訓練
- 您可以選擇性地定義並套用至專案以對文件進行相關性評分的模型。 沒有查詢參數可啟用相關性訓練。 若要使用相關性訓練,您必須以程式化方式 (建立訓練查詢方法) 或使用產品使用者介面來順利訓練專案。
- QPP
- 一種「查詢效能預測」演算法,在給定查詢及前幾個結果的清單之後,會產生評分來決定文件的相關性。 僅在沒有可用的相關性訓練排序器時使用。
- filter
filter參數可以與query和natural_language_query要求一起傳遞,以從結果集中移除不符合特定準則的文件。 過濾器會顯示為文件擷取階段內的最後一個步驟。 不過,它會在流程中的不同時間使用。 會選擇其在圖表中的位置,以強調任何不符合過濾器定義的文件都會從結果集中排除的事實。 排除甚至適用於可能在策劃中指定的文件。- 段落擷取
- 當
passages.enabled=true參數併入自然語言查詢要求時,傳回來自文件的段落。 - 回答發現項目
- 當
passages.find_answers=true參數隨附於自然語言查詢要求時,會從段落中傳回簡潔的回答,以及從文件中擷取的段落。 如果已啟用回答發現項目,則每一個搜尋結果的最終信任評分是來自回答發現項目、段落擷取及 QPP 或重新分級搜尋的信任評分組合 (無論使用何種方法)。 - 表格擷取
- 當
table_results.enabled=true參數併入自然語言查詢要求時,從文件中的表格傳回資訊。
查詢限制
查詢是向 API 的 /query 端點提交 POST 要求的任何作業。 這類作業包括使用 API 提交的查詢。 它不包括從產品使用者介面的 改善及自訂 頁面上的搜尋列提交的查詢。
只有在要求成功時,才會計算查詢的數量,這表示它會傳回回應 (訊息碼 200)。
每個服務實例每月可以提交的搜尋查詢數目取決於 Discovery 計劃類型。
| 方案 | 每個服務實例每月的查詢數 |
|---|---|
| Cloud Pak for Data | 無限制 |
| 進階 | 無限制 |
| 企業 | 無限制 |
| 加號 (包括試用) | 500,000 |
僅針對企業方案,您的帳單會將從查詢搜尋及分析 API 呼叫產生的要求標示為「查詢」。 如需 Analyze API 呼叫的相關資訊,請參閱 Analyze API 限制。
每個服務實例每秒可以處理的查詢數取決於 Discovery 方案類型。
| 方案 | 每個服務實例的並行查詢數 |
|---|---|
| Cloud Pak for Data | 無限制 |
| 進階 | 50 |
| 企業 | 5 |
| 加號 (包括試用) | 5 |
如需定價的相關資訊,請參閱 Discovery 定價方案。
預估查詢使用情形
如何預估您的應用程式每月將使用的查詢數,視您的使用案例而定。
- 對於更著重於資料強化和分析或文件處理的輸出未大量搜尋的使用案例,您可以根據文件總數來預估查詢數目。
- 對於許多使用者與使用 Discovery的應用程式互動的使用案例,您可以透過計算每個使用者的搜尋數乘以預期使用者數目來進行預估。 例如,Discovery可能會回答使用者提交給虛擬助理的 50% 問題。 每個月有 100,000 個使用者,每個使用者平均有 3 個問題,您可以預期每個月有 15,000 個查詢。(10,000 個使用者/月 * 3 個查詢/使用者 * 50% 至 Discovery = 15,000)
在啟用文件層次安全的情況下查詢
IBM Cloud Pak for Data IBM Software Hub
此資訊僅適用於已安裝的部署。
如果您啟用集合的文件層次安全,搜尋結果只會傳回現行使用者有權存取的文件。 如需相關資訊,請參閱 配置文件層次安全。
若要傳回符合安全限制的搜尋結果,現行使用者必須符合下列需求:
- 具有 Discovery 實例的存取權。
- 具有資料來源的存取權。
如果現行使用者不符合這些需求,則不會傳回任何搜尋結果。
與您的 Discovery 範例相關聯的使用者名稱用於產生授權標記。 記號用來鑑別 Discovery 查詢。
若要產生每個存取記號,請執行下列指令:
curl -u "{username}:{password}" \
"https://{hostname}:{port}/v1/preauth/validateAuth"
將 {username} 和 {password} 取代為使用者的 Discovery 認證。
執行查詢時,請使用與使用者相關聯的載送記號。
curl -H "Authorization: Bearer {token}" \
'https://{hostname}/{instance_name}/v2/projects/{project_id}/collections/{Collection_ID}/query\?version\=2019-11-29'