2016-07-20

elastic search 小技巧 - Head plugin



很多人說 elastic search 簡單, 好用
那是對聰明人說的
對於我們這種愚笨慢飛型的人呢就覺得太複雜

所以 haystack 就出來解決我的難題了 =>  haystack 包 elastic,   elastic 包  lucene 

可是 haystack 用久了反而覺得 haystack 太過於簡單, 他包太深
於是又想自己動手直接玩 elastic


安裝小工具讓你事半工倍
如果你跟我一樣你一定會想知道怎麼跟 elastic 聊天
這個工具你一定要裝,
 https://mobz.github.io/elasticsearch-head/

因為 elastic 官網一堆 json code 都用 curl 指令
$ curl -XPOST 'http://localhost:9200/twitter/tweet?routing=kimchy' -d '{
    "user" : "kimchy",
    "postDate" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}
'


太麻煩了,
若你裝了 head , 你就可以直接在 複合查詢裡直接下指令
非常方便

如下圖, 這就是我測試搜尋的方法

瞭解 haystack 的101招
當你下這個 haystack 指令搜尋時
SearchQuerySet().models(article).filter(name2='直播是先前有計畫要做的').filter(status=0)

其實它是轉成底下這樣子的 json  指令去搜尋的 (一定要用雙引號),

{
  "query": {
    "filtered": {
      "filter": {
        "terms": {
          "django_ct": [
            "article.article"
          ]
        }
      },
      "query": {
        "query_string": {
          "fuzzy_min_sim": 0.5,
          "default_field": "name2",
          "default_operator": "or",
          "analyze_wildcard": 1,
          "auto_generate_phrase_queries": "true",
          "query": "((直播是先前有計畫要做的) AND status:(0))",
          "fuzzy_max_expansions": 50
        }
      }
    }
  }
}



這就是 elastic 的 query_string, 而 haystack 的 filter 就是用這一招
auto_generate_phrase_queries 是一個很奇妙的參數, 
>有了 head 你就可以任意的拆解, 測試
甚至最後修改 haystack 的 code 讓你的搜尋更能最佳化, 
不再卡卡的, 不再搜尋出不是你想要的東西
  
幾個指令

1.查詢 settings
當你的資料輸入搜尋的 INDEX 時它是長什麼樣子你好奇嗎?
指令: _settings























2. 驗證你的查詢對搜尋引擎來講是怎麼處理的
很好用, 你一定要會, 網路教人用這招的很少

指令: _validate/query?explain



查看右邊視窗你可以看到 elastic 是怎麼 "分詞" 的

但最大作用就是你可以分析輸入的查詢字串與輸出的結果為什麼不是預想的結果
這是搞搜尋的人最想知道的事






2016-06-14

一款有趣的 app


其實我一直有在注意這個平台
因為我覺得他跟我以前想做的 idea 是一樣的
雖然有些概念及介面表現方法跟我想的不同,但大部分的想法是一樣的
且不管我表現的方法好還是他的方法好,
重點是我還在想,但他已經做出來了

最近這個平台的 app 也出來了(不用想也知道會有 app,大家一窩蜂嘛~),
功能非常簡單,但簡直讓我驚呆了,
因為我發現一件可怕的事

2016-04-26

MySQL 的 bin log 太多如何清除?


你的 mysql 是不是有很多這種檔案呢?
-rw-rw---- 1 mysql mysql        331 10月  5  2015 mysql-bin.000001
-rw-rw---- 1 mysql mysql      12438 10月  5  2015 mysql-bin.000002
-rw-rw---- 1 mysql mysql        345 10月  5  2015 mysql-bin.000003
-rw-rw---- 1 mysql mysql       7399 10月  6  2015 mysql-bin.000004
-rw-rw---- 1 mysql mysql        345 10月  6  2015 mysql-bin.000005
-rw-rw---- 1 mysql mysql  230144205 11月 13 07:31 mysql-bin.000006
-rw-rw---- 1 mysql mysql        384 11月 13 07:31 mysql-bin.000007
-rw-rw---- 1 mysql mysql        345 11月 13 07:32 mysql-bin.000008
-rw-rw---- 1 mysql mysql   17817067 11月 18 02:44 mysql-bin.000009
-rw-rw---- 1 mysql mysql        345 11月 18 02:45 mysql-bin.000010
-rw-rw---- 1 mysql mysql  929645543  3月 11 07:48 mysql-bin.000011

它佔據了你的伺服器很大空間你是否很想刪掉它呢?
千萬不要這麼做 
# rm -rf mysql-bin.000001  (X, 錯誤做法)

2016-04-25

你的 MAC 的 PHP 的指令 ImageTTFText 無效或沒動作?

你的 MAC 的 PHP 的指令 ImageTTFText 無效或沒動作?
例如這行無動作
ImageTTFText($img_org, 14, angle, $pos[1], $pos[2], $thecolor, $ttf_font, $text_out);

大致上應該是兩個問題造成
1. 沒有安裝 GD 程式 library
2. 沒有安裝 freetype font support


2016-04-01

MySQL 備份使用 mysqldump 指令 (無廢話)


MySQL 備份可以用兩種方式,活線(online)及離線(offline)。活線作業是比較好的一種方式,備份方式如下介紹

[mysql 資料庫備份] * 建議 *
在 sqlserver 啟動時
#mysqldump -u root -p blue_footed_db > blue_footed_db_20160331_backup.sql;

在 sqlserver 停止時 (例如:#service mysqld stop)
全目錄備份, 切到 mysql 目錄並備份 DB 子目錄
#cd /var/lib/mysql
指令 tar cfz  備份要儲存的檔名.tar.gzip  欲備份的目錄
#tar cfz my_db.20160331.tar.gzip  my_db

[重要資訊]
因為還原的關係,指定欄位的備份是最保險的,因為:若跨 server 互備及 update ,因為各 server table structure 順序不一定一致,故指定欄位是必要的才不會出錯

這時 mysqldump 要完整的帶 field name 則加 --complete-insert
指令: mysqldump --complete-insert --user=帳號 --password=密碼 --host=主機位置localhost 資料庫名稱 [資料表名稱]  --where="條件式" > 備份要儲存的檔名
#mysqldump --complete-insert --user=myaccount --password=mypassword --host=localhost TestDB cust_table --where="gender = 'f'" > dump_female.sql

2016-03-10

Linux 各種壓縮與解壓縮指令

Linux 上好處是免費,缺點是工具繁多,群雄四起,甚至到亂的地步
單單壓縮,解壓縮的命令就一堆,所以以下是我在網路上抓到的指令整理

Linux 各種壓縮與解壓縮指令

哪一個 free sitemap generator 比較好?


哪一個 free sitemap generator 比較好?

你若在 google 搜尋,第一個會出來的是
https://www.xml-sitemaps.com/

然後第二個會出來的是
https://freesitemapgenerator.com

通常大家會以為 第1個 才是最好的,可是經過我兩種都測過後發現
xml-sitemaps 在抓 link 時會不負責任隨便亂抓 <script></script> 下的東西,例如 handlebar

而  freesitemapgenerator.com 則不會,但 freesitemapgenerator.com 比較龜毛,你必需要驗證、註冊才能用。可能是這個原因 google 才把 xml-sitemaps 放第一位吧?

總之 google 常犯錯,擺最前面的不一定是最佳的
在之為大家建用使用 https://freesitemapgenerator.com 以免你好不容易上傳的 sitemap 都是無效 link, 反而造成你的 SEO 變更糟


有問題的 xml-sitemaps 出錯的資料大概像這樣子:
<loc>http://www.yourdomain.com/path/{{%20detail.creator_salt%20}}</loc>
{{ 及 }} 為 handlebar 內容,並不是正確的  anchor, <a href=“mylink"></a>