顯示具有 search engine 標籤的文章。 顯示所有文章
顯示具有 search engine 標籤的文章。 顯示所有文章

2013/12/09

ElasticSearch中token filters的順序

在ElasticSearch中,一個analyzer可以有多個token filters。而這些filters的順序有時會很重要。
這兩天在玩一個案例,我有一自訂的analyzer,其filters定義為 [standard, lowercase, stop, snowball, synonym],並定義 spanning tree protocol 與 stp為synonym,期望當用spanning tree protocol去搜尋時,也能找到內容中也有stp的文章,反之亦然

但是玩了老半天卻一直失敗,用spanning tree protocol一直無法把文章中有stp的documents給找出來

再用其他之前試驗過的同義字卻是可以成功的,顯然ElasticSearch的機制是OK的,但不知在那個環節出了錯

不斷的try-error,不停的思考,總算悟出了道理。filter的順序是 standard -> lowercase -> stop -> snowball -> synonym
用 "spanning tree protocol" 去搜尋時,從standard到stop都還不會有問題,但到了snowball filter時,filter會把spanning轉變為span,這讓我們的query string從"spanning tree protocol"變成"span tree protocol",當再進到synonym filter時,就無法轉變成同義字stp了,所以同義字的搜詢就會失敗

將filter改成[standard, synonym, lowercase, stop, snowball],把順序調者一下,這樣就解決問題了

2013/11/21

ElasticSearch

ElasticSearch是架構在Apach Lucene上,提供了

  • 更簡便的設定方式
  • distributed, cluster架構
  • RESTful介面 (JSON over HTTP)
  • schema free
  • 依舊是open source (Apache 2)
  • 很容易安裝/移除的plugins (就像是apt-get/yum般)


可以參考的電子書
http://exploringelasticsearch.com

2013/11/19

清掉Solr中所有資料

偷空玩Solr,當然照著 Solr Tutorial跑一次,瞭解一下它有那些features,以及熟悉一下它的界面
然後開始要做些正事了,得把之前測試的資料清掉,拜了一下Google,找到了幾種方法,可是怎麼有些是無效或有問題的

最後用了這個,解決!記錄下來,也許未來用得到
http://192.168.10.66:8983/solr/update?commit=true&stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E