2015年2月28日 星期六

React.js - A HelloWorld example with Express and Node.js

這篇來介紹一下如何快速的利用 Node.js 與 Express 來建立一個 React 的 HelloWorld 範例

React.js 的詳細介紹可以看官網,之後有時間再來詳細介紹...

首先要先快速建立一個 Express 與 Node.js 的 Project,可以用 express-generator

這是一個 Express project 的產生器,可以透過以下指令來安裝
$ npm install express-generator -g

完成後就再利用以下指令建立一個 Express 的 Project
$ express react-demo

進入 react-demo 目錄後可以看一到一個標準的 Express 的目錄結構

接下來就要開始使用 React.js 了,在這之前需要下載 React.js 的函式庫

這邊我是透過 Bower 來管理前端 package 的,所以必須先安裝 Bower

$ npm install bower -g

完成之後先進入 react-demo 目錄內並建立 bower.json,內容如下
{
  "name": "react-demo",
  "version": "0.0.1"
}
接下來就可以透過 Bower 來下載 React.js 了


$ bower install react --save

上述指令的 --save 自動在 bower.json 中加入 dependencies,並且你會在 react-demo 目錄下

2015年2月12日 星期四

【Apache Solr】查詢與刪除 Collection

簡單介紹如何透過 RESTful 來執行 Collection 的查詢與刪除

這裡的查詢是指查詢 Collection 的 schema 資訊,可以透過 HTTP GET 以下的 URL 來取得 schema

GET http://localhost:8983/solr/{collectionName}/schema

大致上 Solr 會將 schema.xml 的內容轉換成 JSON回傳回前端(預設)

如果要用 XML 格式的話,在上述的 URL 後面加上 ?wt=xml 即可

至於要刪除 Collection 的話,可以利用以下的 URL 來完成

GET http://localhost:8983/solr/admin/collections?action=DELETE&name={collectionName}

如果你是在 SolrCloud 的環境下,想要連帶刪除該 Collection 的 config 的話,可以用 Solr 提供的 shell script 來完成

$ cd solr-4.10.2/example/scripts/cloud-scripts
$ ./zkcli.sh -zkhost localhost:9983 -cmd clear {config path}

在 SolrCloud 的環境下 Config 都是由 zookeeper 處理,如果要知道 config 的路徑

可以到 http://localhost:8983/solr/#/~cloud?view=tree 如下圖所示



















選擇你要刪除的 Config 目錄名稱,右邊會帶出一些資訊,並且在下方處有一個路徑

例如 /configs/allenCollection1, 這就是上述指令的 config path 了



2015年2月3日 星期二

【Apache Solr】 建立 Collection (Create Collection using SolrJ or RESTful)

【Apache Solr】建立 Collection (Create Collection) 介紹了如何在 SolrCloud 中建立一個 Collection

當然也說明了一些建立 Collection 的一些條件,包括 Shard 的數量以及 Config 須先上傳到 Zookeeper

接下來介紹一下如何用 SolrJ 以及 RESTful 的方式建立一個 Collection

SolrJ 是一個套件能夠讓開發者透過 Java 的方式來操作 Solr,以下是建立 Collection 的片段程式

String zkHosts = "locahost:9983";
String collectionName = "testCollection1";
String confName       = "testCollection1";  //Configuration Name (You must upload to zookeeper first)
int shards            = 3;
CloudSolrServer server = new CloudSolrServer(zkHosts);
CollectionAdminResponse response = CollectionAdminRequest.createCollection(
                                collectionName, shards, confName , server);

if(null != response.getErrorMessages()){
        /* print error here */
 for(Entry error: response.getErrorMessages()){
  result.addErrorMsg(error.getValue());
 }
}
server.shutdown();

CollectionAdminRequest 有很多的重載方法,可以去查它的 API