云端數據庫對于存儲和管理結構化數據來說是十分理想的,尤其是它可以巧妙地將數據整合到關系表中。但企業處理的許多數據都是非結構化或半結構化的。另外,還有一些企業的數據由易于查找的自由格式文本組成。關系型數據庫處理有關成本、尺寸和數量等產品信息。然而,如果增加了幾個段落的詳細說明,那么數據庫就會無法正常工作。在這種情況下,企業就需要搜索引擎的支持了。
搜索引擎是一種應用程序,它允許用戶使用與關系型數據庫幾乎相同的方式來查詢結構化或半結構化數據。企業在AWS云上存儲和管理著大量半結構化內容,以便于使用AmazonCloudSearch 來獲取數據。
一些搜索引擎用來處理半結構化或非結構化數據,并能讀取多種文件類型,如DOCX,PDF和TXT。亞馬遜CloudSearch還可以兼容JSON或XML文檔。所以,如果你的數據內容是不同的形式,就需要把數據格式預處理為這些格式之一。
CloudSearch在域中組織著半結構化數據;類似于關系型數據庫,其數據表中包含若干行數據,域中包含著文檔。該文檔包括字段名和值。舉例來說,如果你有一個用來搜索電子郵件的域,其文檔將包括以下字段,如發件人、收件人、抄送、主題和信息。
使用亞馬遜CloudSearch的第一步是在你的文檔里定義字段。每個字段中,你可以闡明該字段中的數據是否可搜索、用戶是否能夠在該字段進行排序以及其他處理選項。CloudSearch也提供了提取樣本數據的功能,從而避免了手動指定所有字段和處理選項,節省了時間。
一旦確定了域,文檔就可以加載到CloudSearch.。然后,它們根據域的配置來進行處理。這可以包括刪除常用詞、不能在云計算數據庫中搜索到的停止字符,否則將會占用不必要的空間。在一個“stemming”進程中,文檔中的文本也有可能包含已經被詞根替代的單詞。這有助于提高匹配、降低存儲空間,例如像“rain”、“rained”和“raining”這些詞都歸結為詞根“rain”。
當文檔被加載,文字索引建成后,CloudSearch域就已經具備了查詢功能。如關系數據庫,它也可以做復雜或簡單的查詢。用戶可以搜索一個簡單的詞組,像“耳機”或者其他更有針對性的單詞,例如,“這個字段描述應該包含‘耳機’,價格字段應該‘少于25元’并且第一個可用日期應該是‘過去的十二月之內’”。
想要執行這種布爾搜索,開發者必須要熟悉CloudSearch的查詢語法。開發人員創建一個搜索界面使終端用戶可以指定字段和值,同時可以隱藏CloudSearch查詢語法的復雜性。
訪問和擴展亞馬遜CloudSearch 為了管理域、加載文件和查詢域,CloudSearch擁有三個接入點,分別為管理控制臺、命令行界面或編程語言的API。
和其他AWS服務一樣,對于現有實例來說,如果你的文件索引或查詢處理負荷過高,那么CloudSearch的規模將會擴大。CloudSearch可與小型、大型、特大型和雙倍超大的搜索實例協同工作;其價格范圍從0.10美元/每小時到1.10美元/每小時。當CloudSearch進行擴展時,它會啟動一個更大的實例。如果CloudSearch已經使用了最大實例,它將把文件分區并使用多臺服務器來索引文檔或響應查詢。
CloudSearch支持特殊屬性搜索引擎,包括多種語言、高級搜索選項、自動查詢和結果高亮化等功能。為了保護內容,該應用程序還集成了身份訪問管理器。它也可以指定一個或多個IP地址,這些IP地址可以允許加載文件到數據庫中。