模糊搜尋陣列 搜尋介面優化方案 冪集分詞表

2021-10-16 09:51:42 字數 1282 閱讀 9416

在業務開發中,有一些面向c端的搜尋介面。比如根據商品名搜尋,之前也提過通過es解決,但這次主要以一種較為簡單快捷的方式優化搜尋速度。

1. 陣列元素的冪集函式。

if (!function_exists('powerset'))         }        return array_values($results);    }}
2. 搜尋分詞表建立。

欄位名型別描述idint主鍵 idgoods_idint商品編號search_pathvarchar分詞字元

3. 生成搜尋詞資料命令, 以後可通過php think make:name 執行。

4. 搜尋功能方法示例。

/** * @notes: * @param string $keyword 搜尋關鍵字 * @param int $page 頁碼 * @param int $size 每頁數量 * @return array */public function search($keyword = '', $page = 1, $size = 10)$ids = db::name("search")->where("search_path", "like", $where, "or")->column("goods_id");$ids = array_unique($ids);$goods = 0;$goods = db::name("goods")->where("state", 1)->where("goods_name", "=", $keyword)->value("id");if ($goods && $page == 1) $map = ['state', '=', 1];$map = ['delete_time', '=', 0];$map = ['id', 'in', $ids];$res = self::where($map)->field("id,goods_name")->order(['sort' => 'desc', 'id' => 'desc'])->page($page, $size)->select()->toarray();if ($goods && $page == 1)  else }return $res;}

基於ES的商品搜尋優化方案

新增底紋熱搜提示 動態的切換搜尋底紋,搜尋底紋為 商品銷售排名topn,通過快取獲取重新整理,兩個小時進行重新整理。聯動詞建立商品名稱,品牌,類目 型別,屬性 等實體的索引,通過查詢推薦實現搜尋聯動,索引進行動態更新。1.文字歸一 1 去除停用詞,如 使用者不小心輸入的特殊符號 標點符號 2 大小寫...

搜尋引擎優化(SEO)解決方案

搜尋引擎優化 seo 解決方案 搜尋引擎 search engine 是指根據一定的策略 運用特定的電腦程式從網際網路上蒐集資訊,在對資訊進行組織和處理後,為使用者提供檢索服務,將使用者檢索相關的資訊展示給使用者的系統。搜尋引擎包括全文索引 目錄索引 元搜尋引擎 垂直搜尋引擎 集合式搜尋引擎 門戶搜...

php 在陣列的資料中查詢和搜尋 陣列模糊查詢

一 單一條件查詢 在陣列中資料中,通過查詢條件得出想要的陣列 ar array 2 array catid 2,catdir notice 5 array catid 5,catdir subject 6 array catid 6,catdir news catdir so subject r a...