Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added data/gst
Binary file not shown.
11,323 changes: 11,323 additions & 0 deletions data/page_information.sql

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ pandas
pymysql
python-dotenv
psutil
sklearn
scikit-learn
numpy
pdoc3
matplotlib
flask
cryptography
cryptography
anytree
15 changes: 11 additions & 4 deletions src/api/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,19 @@ def run():
from src.api.page_ranking import bp_page_ranking
from src.api.document_ranking import bp_document_ranking
from src.api.overall_ranking import bp_overall_ranking
from src.api.indexing import bp_indexing

api_version = os.getenv("API_VERSION")
app.register_blueprint(bp_crawling, url_prefix="/api/" + api_version + "/crawling")
app.register_blueprint(bp_page_ranking, url_prefix="/api/" + api_version + "/page_ranking")
app.register_blueprint(bp_document_ranking, url_prefix="/api/" + api_version + "/document_ranking")
app.register_blueprint(bp_overall_ranking, url_prefix="/api/" + api_version + "/overall_ranking")
app.register_blueprint(
bp_crawling, url_prefix="/api/" + api_version + "/crawling")
app.register_blueprint(
bp_page_ranking, url_prefix="/api/" + api_version + "/page_ranking")
app.register_blueprint(
bp_document_ranking, url_prefix="/api/" + api_version + "/document_ranking")
app.register_blueprint(
bp_overall_ranking, url_prefix="/api/" + api_version + "/overall_ranking")
app.register_blueprint(
bp_indexing, url_prefix="/api/" + api_version + "/indexing")

@app.route("/")
def index():
Expand Down
15 changes: 15 additions & 0 deletions src/api/indexing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from flask import Blueprint, request
from src.indexing.gst import main
import json

bp_indexing = Blueprint(
"indexing",
__name__,
)


@bp_indexing.route('/gstsearch', methods=['POST'])
def gstsearch():
query = request.form['query']
response = main(query)
return response
Empty file added src/indexing/__init__.py
Empty file.
20 changes: 20 additions & 0 deletions src/indexing/gst.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generalized Suffix Tree based Indexing Module
Untuk membuat search engine diperlukan banyak komponen yang mendukung kebutuhan arsitektur search engine. Pada penelitian sebelumnya, komponen crawler berhasil dibuat oleh Muhammad Fathan Qoriiba dalam penelitiannya yang berjudul "Perancangan Crawler Sebagai Pendukung Pada Search Engine". Salah satu komponen dari search engine yang belum diimplementasikan adalah modul pengindeks atau indexer. Penelitian ini bertujuan untuk membuat modul pengindeks menggunakan struktur data Generalized Suffix Tree untuk keperluan pemeringkatan dokumen sekaligus melanjutkan rangkaian penelitian search engine. Proses pembentukan Generalized Suffix Tree dan seluruh program dibuat menggunakan bahasa Python. Hasil akhir dari penelitian ini adalah modul pengindeks berupa program console yang digunakan untuk melakukan pencarian dengan nilai Mean Average Precision dari 3 tester sebesar 0.658 dan struktur data Generalized Suffix Tree dengan kedalaman maksimal 11 level dan total jumlah daun sebanyak 34.573
daun yang tersimpan dalam direktori yang sama.
### Requirement
- Python 3.5+
- Apache, MySQL
- Library Python : anytree, pymysql, time, pickle, dan re

### How to use
1. Unduh atau clone repository ini.
2. Jalankan Apache dan MySQL pada XAMPP Anda
3. Import database yang tersedia yaitu pada folder data/page_information.sql pada localhost
4. Install python dan library yang diperlukan. Untuk library dapat diinstall melalui cmd: ```pip install <nama library>```
5. Pastikan nama dan koneksi database sesuai pada fungsi getResult() dan getTitle()
6. Jalankan script gst.py
7. Masukkan kalimat atau kata yang ingin dicari
8. Lihat hasil pada terminal atau console
9. Jika ingin membuat tree dari awal maka hapus file yang bernama gst pada folder data lalu uncomment 3 line teratas pada fungsi main pada script src/indexing/gst.py
10. Jalankan script gst.py

Loading