Závislosti - requests - pyspark - pylucene (Inštalácia nižšie) - pandas, pyarrow, grpcio, google, protobuf, grpcio-status? - sphinx - pytest
Najprv je treba otvoriť venv, kde sú nainštalované závislosi
workon pylucene
Spustenie crawlera (Najprv skontroluj správne nastavenie domén a pravidiel)
python geologizer.py -c 2>&1 | tee log.txt
Odstráň neplatné položky z dokument indexu
python geologizer.py -f
Spustenie na spracovanie nacrawlovaných záznamov a oprava indexu stránok
python geologizer.py -p
Zlúčenie indexu dokumentov a vytvorenie indexu termov
python geologizer.py -m -i
Full text vyhľadávanie s 10 výsledkami
python geologizer.py -q "Key words" -n 10 # Vlastný index
python geologizer.py -ql "Key words" -n 10 # Lucene
Extrahovanie wikipedie, obohatenie vlastného indexu, vyhľadávanie
python geologizer.py -p -i # Processing HTML a extrakcia vlastného indexu
python geologizer.py -wiki "minerals.xml" -w # Parsovanie wiki (uloží sa do wikipedia.index.txt.dir)
# Presun spark výsledku z priečinku wikipedia.index.txt.dir do wikipedia.index.txt
python geologizer.py -e # Obohatenie vlastného indexu
# Presun spark výsledku z priečinku enhanced.index.txt.dir do enhanced.index.txt
python geologizer.py -il -a # Lucene indexovanie full text & enhanced indexu
# Lucene atribútové vyhľadávanie
python geologizer.py -ql "?# mohs-hardness-max = 5.0" -n 10 -a
# Vlastné atribútové vyhľadávanie
python geologizer.py -q "?# mohs-hardness-min > 2 AND mohs-hardness-max < 5" -n 10
Návod ako si nainštalovať pylucene na Manjaro Linux (Dockerfile: https://github.com/coady/docker/blob/main/pylucene/Dockerfile)
# Download Temurin JDK 17
# https://adoptium.net/temurin/releases/?version=17&package=jdk&arch=x64&os=linux
# Copy to system location and set java
sudo cp -r jdk-17-temurin /usr/lib/jvm/
sudo archlinux-java status
sudo archlinux-java set jdk-17-temurin
mkvirtualenv pylucene
# Download pylucene
mkdir pylucene && cd pylucene
curl https://downloads.apache.org/lucene/pylucene/pylucene-9.7.0-src.tar.gz | tar -xz --strip-components=1
cd jcc
NO_SHARED=1 JCC_JDK=/usr/lib/jvm/jdk-17-temurin python setup.py install
cd ..
make all install JCC='python -m jcc' PYTHON=python NUM_FILES=16
Vytvorenie indexu cez Pylucene
python geologizer.py -l
Full text vyhľadávanie s 10 výsledkami cez Pylucene
python geologizer.py -o "Key words" -n 10
Docs: https://spark.apache.org/docs/1.0.0/spark-standalone.html
Stiahnutie:
wget https://www.apache.org/dyn/closer.lua/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgz
tar -xzf spark-3.5.0-bin-hadoop3.tgz
mv spark-3.5.0-bin-hadoop3 spark
Spustenie
spark/sbin/start-master.sh -h localhost -p 7077
spark/sbin//start-worker.sh "localhost:7077" -c 8 -m 4G
Zastavenie
spark/sbin/stop-master.sh
spark/sbin//stop-worker.sh
pyspark --master local --packages com.databricks:spark-xml_2.13:0.17.0
spark.read.format('com.databricks.spark.xml').option('inferschema', 'true').option('rowTag', 'page').load('minerals.xml')
Install
curl -LO https://raw.githubusercontent.com/bitnami/containers/main/bitnami/spark/docker-compose.yml
docker-compose up
Start
docker-compose up --scale spark-worker=3
- Crawler ('-c', '--crawler') [save to: docbase]
- Validate page indexes ('-f', '--fix-page-index')
- Document extraction ('-p', '--parse-documents') [save to: docbase-processed]
- Entity indexing
- Fulltext lucene: My document base ('-l', '--lucene-index')
- My document base: full-text & entity ('-i', '--term-index')
- Wikipedia: entity ('-w', '--wiki-index')
- Enrichment of index with wikipedia ('-e', '--wiki-enrichment')
- Searching
- Full text lucene: ('-o', '--lucene-query')
- full-text & entity: ('-q', '--query')
- Prefix '?#' for entity
- count ('-n', '--number-of-results')
Z koreňového priečinka projektu spusti:
python -m pytest -s