幫助中心 | 我的帳號 | 關於我們

搜索引擎與程序化廣告(原理設計與實戰)

  • 作者:楊敏|責編:胡俊英
  • 出版社:人民郵電
  • ISBN:9787115617002
  • 出版日期:2023/09/01
  • 裝幀:平裝
  • 頁數:396
人民幣:RMB 109.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書從源碼的角度講解搜索技術與程序化廣告系統,將技術與業務結合、理論與實踐並重,幫助讀者更好地理解並掌握相關知識。
    本書首先從基礎的數據結構出發,帶領讀者深入理解線性結構、樹結構和圖結構的搜索演算法,以及它們的典型應用場景。其次詳細分析全文搜索引擎工具包Lucene,包括其索引結構、分析器、搜索與排名機制,以及Lucene的底層數據結構與演算法。最後,本書從搜索技術過渡到程序化廣告,介紹程序化廣告系統中的各個模塊和工作機制,包含廣告檢索、廣告庫存預測、廣告定位、廣告標籤模板、廣告實時競價、廣告實時數據、廣告事件流聚合、廣告供應鏈透明度等內容。
    本書適合從事搜索技術、程序化廣告相關工作或對相關內容感興趣的軟體開發人員閱讀。在閱讀本書之前,讀者需要具備基本的編程能力。

作者介紹
楊敏|責編:胡俊英
    楊敏     畢業於浙江大學電腦科學與技術專業,目前就職于一家專門提供互聯網視頻廣告投放、預測和增值等解決方案的公司FreeWheel,擔任廣告供應方平台(Supply-Side Platform,SSP)技術負責人、架構師。     曾在美國道富銀行、Thoughtworks、微軟等公司工作,參與或主持開發過的項目有:     ·美國道富銀行的普林斯頓金融系統;     ·普華永道全球派遣服務軟體系統;     ·微軟SharePoint平台的搜索系統;     ·FreeWheel的廣告供應方平台Stickyads.tv。     目前專註于Python/Java虛擬機、分散式搜索引擎Elasticsearch、MySQL內核等相關技術領域的研究。

目錄
第1章  搜索技術的演算法
  1.1  背景
  1.2  字元串搜索
    1.2.1  概述
    1.2.2  基礎字元串搜索演算法:暴力搜索演算法
    1.2.3  中級字元串搜索演算法:KMP演算法
    1.2.4  高級字元串搜索演算法:BM演算法
    1.2.5  字元串精確搜索:Grep
    1.2.6  字元串模糊搜索
  1.3  樹搜索
    1.3.1  概述
    1.3.2  二叉搜索樹
    1.3.3  2-3-4樹
    1.3.4  2-3-4樹與紅黑樹的等價關係
    1.3.5  紅黑樹操作
    1.3.6  紅黑樹典型應用場景
  1.4  圖搜索
    1.4.1  概述
    1.4.2  圖建模中,鄰接矩陣和鄰接表哪種結構更好?
    1.4.3  DFS在圖搜索和樹搜索中的應用
    1.4.4  DFS無向圖連通分量問題
    1.4.5  DFS單源路徑問題
    1.4.6  BFS單源(最短)路徑問題
    1.4.7  DFS檢測無向圖中的環
    1.4.8  二分圖檢測與染色演算法
    1.4.9  拓撲排序
    1.4.10  動態規劃和遞歸之間的關係
  1.5  小結
第2章  Lucene基礎
  2.1  背景
  2.2  Lucene與傳統關係資料庫
    2.2.1  Lucene與傳統關係資料庫的異同
    2.2.2  Lucene的全文搜索機制
    2.2.3  倒排索引的使用場景
  2.3  Lucene與Elasticsearch
  2.4  Lucene的倒排索引設計
    2.4.1  倒排索引
    2.4.2  Posting數據結構
    2.4.3  ByteBlockPool動態數組
    2.4.4  Posting與ByteBlockPool的關係
    2.4.5  ThreadState結構
    2.4.6  DocumentsWriter結構
  2.5  Lucene的正排索引設計
    2.5.1  正排索引與倒排索引
    2.5.2  Lucene的正排索引與數學中的向量的關係
    2.5.3  正排索引存儲
    2.5.4  索引數據的寫流程
  2.6  有效負載
    2.6.1  有效負載的結構
    2.6.2  有效負載的格式

    2.6.3  文檔權重與域權重
    2.6.4  權重與有效負載
    2.6.5  有效負載的應用場景
  2.7  複合索引文件
    2.7.1  複合索引的文件格式
    2.7.2  寫複合索引文件
  2.8  小結
第3章  Lucene索引段
  3.1  背景
  3.2  不同索引結構的比較
    3.2.1  MySQL:B+樹
    3.2.2  MySQL:哈希索引
    3.2.3  Redis:跳錶
    3.2.4  Lucene:倒排索引
  3.3  索引段的基礎知識
    3.3.1  概述
    3.3.2  SegmentInfos容器
    3.3.3  IndexReader
    3.3.4  SegmentReader
    3.3.5  倒排索引格式
    3.3.6  索引段的讀流程
  3.4  索引段的合併
    3.4.1  概述
    3.4.2  段合併的典型問題
    3.4.3  段合併的策略
    3.4.4  段合併的簡單流程
    3.4.5  合併段內域:mergeFields
    3.4.6  合併段內分詞:mergeTerms
    3.4.7  合併段內詞向量:mergeVectors
  3.5  索引段提交點與快照
    3.5.1  概述
    3.5.2  提交點
    3.5.3  快照
    3.5.4  觸發快照的場景
  3.6  索引段刪除文檔
    3.6.1  概述
    3.6.2  del擴展文件
    3.6.3  位向量
    3.6.4  索引段刪除分詞
    3.6.5  索引段查詢分詞
  3.7  小結
第4章  Lucene分析器
  4.1  背景
  4.2  Field、Token與Term概念
  4.3  JavaCC與查詢解析器
    4.3.1  Yacc與JavaCC
    4.3.2  在JavaCC中擴展正則表達式
    4.3.3  JavaCC的輸入文件之XX.jj
    4.3.4  Lucene中Token的正則表達式定義
    4.3.5  Lucene語法產生式:分析與生成查詢

    4.3.6  getFieldQuery公共函數
  4.4  分析器
    4.4.1  概述
    4.4.2  分析器的組成:分詞器和過濾器
    4.4.3  分析器的兩個典型場景
    4.4.4  索引的構建流程
    4.4.5  QueryParse查詢流程
    4.4.6  位置增量
  4.5  中文分詞器
    4.5.1  概述
    4.5.2  中文分詞器的思想
    4.5.3  sego中文分詞器
    4.5.4  雙數組前綴樹演算法
    4.5.5  維特比演算法
    4.5.6  迪傑斯特拉演算法
  4.6  小結
第5章  Lucene搜索與排名
  5.1  背景
  5.2  搜索結果排名
    5.2.1  TF-IDF模型
    5.2.2  餘弦相似性
  5.3  過濾器
    5.3.1  概述
    5.3.2  過濾
    5.3.3  CachingWrapperFilter
    5.3.4  創建自定義過濾器
    5.3.5  過濾與查詢的區別
  5.4  全文搜索
    5.4.1  概述
    5.4.2  Query、Weight和Scorer對象樹
    5.4.3  搜索流程(關閉過濾器)
  5.5  短語搜索:相關性搜索
    5.5.1  概述
    5.5.2  一個查詢短語舉例
    5.5.3  TermPositions與TermDocs
    5.5.4  PhraseQuery類體系
    5.5.5  PhraseScorer工作流
    5.5.6  MultiPhraseQuery
  5.6  模糊搜索:利用模糊性改善搜索性能
    5.6.1  概述
    5.6.2  編輯距離演算法
    5.6.3  FuzzyQuery工作流
  5.7  小結
第6章  Lucene的底層數據結構與演算法
  6.1  背景
  6.2  編碼與壓縮演算法
    6.2.1  概述
    6.2.2  前綴編碼
    6.2.3  增量編碼
    6.2.4  變長位元組編碼

  6.3  跳錶結構:分層有序鏈表
    6.3.1  概述
    6.3.2  跳錶的定義與規則
    6.3.3  從單鏈表到跳錶
    6.3.4  跳錶的特點
    6.3.5  frq索引文件中的跳錶設計
    6.3.6  索引的設計思想:空間換時間
    6.3.7  MultiLevelSkipListWriter類的相關狀態
    6.3.8  MultiLevelSkipListWriter類的相關操作
    6.3.9  MultiLevelSkipListReader類的相關狀態和操作
  6.4  ByteSliceReader結構
    6.4.1  概述
    6.4.2  ByteBlockPool數據結構
    6.4.3  ByteBlockPool使用數組來模擬鏈表
    6.4.4  Posting倒排列表與ByteBlockPool的關係
    6.4.5  ByteSliceReader數據結構
  6.5  ByteBlockPool結構:數組模擬鏈表
    6.5.1  概述
    6.5.2  數組如何模擬鏈表
    6.5.3  鏈表與數組
    6.5.4  線性與非線性結構
    6.5.5  ByteBlockPool再思考
  6.6  小結
第7章  廣告檢索與定位
  7.1  背景
  7.2  全文索引和檢索
    7.2.1  概述
    7.2.2  全文索引模型
    7.2.3  檢索模型
    7.2.4  關係資料庫中索引的設計
    7.2.5  一個簡單倒排索引的設計
  7.3  點陣圖索引
    7.3.1  概述
    7.3.2  點陣圖索引結構
    7.3.3  點陣圖索引中的編碼
    7.3.4  點陣圖索引的構建與查詢
    7.3.5  對倒排文本進行點陣圖索引
  7.4  用Be_indexer開源框架實現廣告索引
    7.4.1  文檔類體系
    7.4.2  FieldDesc類體系
    7.4.3  字典編碼
    7.4.4  Be_indexer框架的基本流程
    7.4.5  Be_indexer框架的倒排索引
  7.5  程序化廣告概述
    7.5.1  程序化廣告是什麼?
    7.5.2  程序化廣告系統的主要模塊
  7.6  廣告檢索
    7.6.1  概述
    7.6.2  廣告選擇:用布爾邏輯表達式實現
    7.6.3  廣告選擇:用DNF實現

    7.6.4  用Clorisearch開源框架實現廣告檢索
  7.7  廣告庫存預測
    7.7.1  概述
    7.7.2  定向廣告和重定向廣告
    7.7.3  命題邏輯基礎
    7.7.4  DNF的應用
    7.7.5  廣告庫存預測:用DNF演算法實現
  7.8  廣告定位:用戶身份圖構建與搜索
    7.8.1  概述
    7.8.2  Cookie
    7.8.3  同一用戶在不同平台中的身份匹配:用戶匹配表
    7.8.4  演進1:集中式Cookie同步技術
    7.8.5  演進2:用戶身份圖
  7.9  廣告定位:通過DMP幫助用戶匹配正確的廣告
    7.9.1  概述
    7.9.2  DMP的基礎知識
    7.9.3  DMP分段
    7.9.4  DMP和DSP的協同工作
    7.9.5  DMP的用戶數據在DSP中的使用場景
  7.10  小結
第8章  程序化廣告技術
  8.1  背景
  8.2  廣告標籤模板
    8.2.1  VAST工作流程
    8.2.2  VAST格式
  8.3  廣告實時競價
    8.3.1  RTB工作流程
    8.3.2  投標請求
    8.3.3  投標響應
  8.4  廣告實時數據
    8.4.1  廣告日誌數據
    8.4.2  廣告生命周期:事件流
    8.4.3  廣告數據聚合
  8.5  廣告事件流聚合
    8.5.1  概述
    8.5.2  需求
    8.5.3  解決思路:數據管道架構
    8.5.4  方案1-數據管道:Kafka
    8.5.5  方案2-數據管道:Kafka+Cassandra
    8.5.6  方案3-數據管道:Kafka+Spark+Cassandra
    8.5.7  方案4-數據管道:Kafka+Spark+Cassandra+Data-Version
  8.6  廣告供應鏈透明度分析
    8.6.1  Ads.txt
    8.6.2  Seller.json
    8.6.3  供應鏈對象
    8.6.4  Ads.txt、Seller.json和供應鏈對象的關係
  8.7  小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032