Liệu mình có thể tạo ra 1 ứng dụng tìm kiếm đơn giản cho mình không? Tại sao không nhỉ? Chúng ta sẽ bắt đầu với cái đơn giản nhất từ những thứ đã có.
Các bạn cũng đã biết Elasticsearch là một seach engine mãnh mẽ. Các bạn muốn tìm hiểu thêm về nó thì có thể hỏi anh Google là sẽ cho một đống bao gồm cả tiếng việt và tiếng anh, tha hồ mà bạn nghiền ngẫm, ngấu nghiến nó !.
Nay mình chỉ trình bày đơn giản là thử tạo ứng dụng search đơn giản từ Elasticsearch, AngularJS, Python và Apache Tomcat như thế nào?
Ở đây mình thử nó trên môi trường window. Mình cần chuẩn bị một số thứ:
- Java 8x
- Apache Tomcat 8.x (https://tomcat.apache.org/download-80.cgi)
- Elasticsearch (https://www.elastic.co/downloads/elasticsearch)
- AngularJS
- Python 2.x
- Dữ liệu demo: https://drive.google.com/file/d/0B_-Qs9TMzKukQURiR2xxdDVXYms/view
Trước tiên bạn download source code về máy
git clone https://github.com/vivekkalyanarangan30/searchengine
Ta sẽ có được 1 thư mục tên là ‘seachengine‘. Chúng ta sẽ sẽ nhìn thấy trong thư mục ‘searchengine‘ có một thư mục ‘FrontEnd‘ – đây chính là source code angularjs cho phần giao diện, chúng ta sẽ copy thư mục ‘FrontEnd‘ vào trong thư mục cài đặt của tomcat: apache-tomcat-8.x/webapps/
Kế đến, chúng ta download dữ liệu demo về.
https://drive.google.com/file/d/0B_-Qs9TMzKukQURiR2xxdDVXYms/view
Sau khi download xong, chúng ta sẽ có file ‘people_wiki.csv‘ . Bạn nhớ copy file ‘ people_wiki.csv‘ vào thư mục ‘searchegine/data/‘ nhé !.
Cài đặt thêm một số thư viện cần thiết cho project
cd searchengine
pip install -r pythonrequirements.txt
Xong, chúng ta bắt đầu vào vấn đề chính.
Trở lại source code, chúng ta cần điều chỉnh source code một chút để nó chạy được trên máy của mình.
//file searchenginepythonconfig.py
================old==================
if platform.system()=='Windows':
host = '192.168.99.100'
else:
host = 'localhost'
url = 'http://192.168.99.100:9200/wiki_search
===============new=================
#if platform.system()=='Windows':
# host = '192.168.99.100'
#else:
# host = 'localhost'
url = 'http://localhost:9200/wiki_search
//file searchenginepythonindexing.py
==================old====================
data = pd.read_csv('/usr/local/searchengine/data/people_wiki.csv')
==================new===================
data = pd.read_csv('../data/people_wiki.csv')
Xong. chúng ta bắt đầu start theo thứ tự sau:
- Start Elasticsearch
call cd elasticsearchbin
call elasticsearch.bat
call cd ..
call cd ..
1.1 kiểm tra xem Elasticsearch đã start chưa bằng cách truy cập http://localhost:9200 nếu đạt kết quả như bên dưới là thành công
2. Start search engine config
call cd python
call python config.py
call cd ..
3. Start search engine đánh index
call cd python
call python indexing.py
call cd ..
4. Start front end
call cd apache-tomcat-8.xbin
call startup.bat
call cd ..
call cd ..
5. Kiểm tra kết quả, chúng ta truy cập http://localhost:8080/FrontEnd/ sẽ thu được kết quả như sau:
Thật đơn giản phải không? còn lại là bạn thích tìm hiểu, vọc phá hay thêm thắt code gì đó nếu thích.!!
****Note*** : Nếu trong quá trình chạy frontend, bạn gặp lỗi như hình bên dưới.
Thì bạn vui lòng cái thêm extension Allow-Control-Allow-Origin nữa nhé. Link cho chrome: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi . Bạn có thể tìm những extension tương tự cho firefox,….
Nếu muốn xài docker thì mọi người cũng có thể tham khảo ở đây:
- machinelearningblogs.com/2016/12/12/how-to-build-a-search-engine-part-1/
- machinelearningblogs.com/2016/12/19/how-to-build-a-search-engine-part-2/
- machinelearningblogs.com/2016/12/how-to-build-a-search-engine-part-3/
- machinelearningblogs.com/2016/12/how-to-build-a-search-engine-part-4/
và mọi người cũng có thể triển khai chúng trên môi trường cloud . Google Cloud Platform hoặc Amazon Web Service đều được.
Liên hệ ngay với chúng tôi, Cloud Ace Việt Nam để được tư vấn về G Suite, Google Cloud Platform (GCP).