ElasticSearch 使用心得

版本 ES 1.7.1   pyes 0.99.6


  • ES 2.x版本不兼容_head等插件,因此先用1.7.1(這和Python2/3相似)
  • pyes 0.99.5 沒有FunctionScoreQuery.FieldValueFactor, 0.99.6有
  • RTF版本(免配置的中文搜索) 
  • 插件head:  圖形化web管理頁面

中文分詞插件--IK


  1. 編譯好的zip文件解壓到  ES根目錄/plugin/analyzerIK
  2. 拷貝IK的config/ik 到 ES根目錄/config/
  3. ES根目錄/config/elasticsearch.yml  中追加
index.analysis.analyzer.default.type : "ik"
index:
  analysis:
    analyzer:
      ik:
          alias: [ik_analyzer]
          type: org.elasticsearch.index.analysis.IkAnalyzerProvider
      ik_smart:
          type: ik
          use_smart: true
      ik_max_word:
          type: ik
          use_smart: false

重啓ES便可 java

  • RTF版本有編譯好的,但我移植到本身的ES上就報錯了,但官方給出的解決方案我是醉了(見https://github.com/medcl/elasticsearch-analysis-ik/issues/48)
  • 測試 http://localhost:9200/your_index/_analyze?analyzer=ik&pretty=1&text=我要信耶穌,得永生

查詢 | pyes使用


  • 搜索結果的展現,最要關心的莫過於 排序


  • ES的全文搜索,默認依據_score降序排
  • _score的算法,通常來說了解便可,ES暴露出API來給咱們調整score  TF/IDF... 詳見http://blog.csdn.net/dm_vincent/article/category/2718099
  • boosting in query-time是經常使用的干預手段(TODO爲何不boost in index-time)
  • FunctionScoreQuery能夠讓咱們更加大力度影響最終score,也就是排序(TODO一共有哪些?)
  • FunctionScoreQuery.FieldValueFactor  能夠用文檔中某一字段來影響score

TODO 部署ES

相關文章
相關標籤/搜索