YangMark

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一. 環境安裝

ElasticSearch(以下簡稱ES)安裝已經算相對簡單了, 但要使用需要配置的插件, 對剛入門的新手還是有點麻煩, 所幸medcl大神提供一個配置好的ES-rtf版本, 新手們在參數配置上浪費無謂的時間。

Github上的elasticsearch-rtf , 裡面都有詳盡的使用說明, 這裡就不多說了.(P.S. ansj,string2int這兩個插件需使用Redis, 若不需要使用可以將這兩個插件移除)

 

二. 使用ik中文分詞插件

ik中文分詞插件例子在ES-Sense演示語法 ,

1. 創建名為myindex的index

PUT http://localhost:9200/myindex
2.在Type名為fulltext建立mapping, 若fulltext有資料ES會報錯
POST http://localhost:9200/myindex/fulltext/_mapping
{
    "fulltext": {
             "_all": {
            "indexAnalyzer": "ik",
            "searchAnalyzer": "ik",
            "term_vector": "no",
            "store": "false"
        },
        "properties": {
            "content": {
                "type": "string",
                "store": "no",
                "term_vector": "with_positions_offsets",
                "indexAnalyzer": "ik",
                "searchAnalyzer": "ik",
                "include_in_all": "true",
                "boost": 8
            }
        }
    }
}

3. 接下來我們可以在/index/fulltext建立一下資料了, 這裡將網站上content改為"content", 在Sense執行是都沒有問題的, 但使用Paly Framework在解析Json會出現問題, 所以最好補上雙引號

POST http://localhost:9200/myindex/fulltext/1
{"content":"美国留给伊拉克的是个烂摊子吗"}


POST http://localhost:9200/myindex/fulltext/2 
{"content":"公安部:各地校车将享最高路权"}


POST http://localhost:9200/myindex/fulltext/3 
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}


POST http://localhost:9200/myindex/fulltext/4 
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}

4. 接下來我們用"中国"這個關鍵字做搜尋

POST http://localhost:9200/myindex/fulltext/_search 
{
    "query" : { "term" : { "content" : "中国" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}

ik github上有搜尋的結果這裡就不顯示了

 

5. 如何輸入繁體"中國" 得出相同的搜尋結果呢?

GET /myindex/fulltext/_search?pretty
{
  query: {
    match: {
      content: {
        analyzer: "t2s_convert",
        query: "中國"
        
      }
      
    }
    
  },
   "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}

analyzer: "t2s_convert"這指的是設定analyzer選擇用t2s_convert(繁 to 簡 轉換)

這樣就能繁體對簡體資料做搜尋囉。

posted on 2014-07-08 17:58  YangMark  阅读(3213)  评论(1编辑  收藏  举报