Το επίσημο προεπιλεγμένο πρόσθετο τμηματοποίησης λέξεων του elasticsearch δεν είναι ιδανικό για τμηματοποίηση κινεζικών λέξεων. Για παράδειγμα, θα πάρω τώρα ένα συγκεκριμένο παράδειγμα για να δείξω γιατί η προσθήκη τμηματοποίησης λέξεων που παρέχεται από τον επίσημο ιστότοπο της ES δεν είναι αποτελεσματική για την τμηματοποίηση κινεζικών λέξεων. Τεκμηρίωση αναφοράς:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Υποβάλλουμε ένα κομμάτι δεδομένων στη διεπαφή ανάλυσης, ως εξής:
http://ip:9200/_analyze POST请求
Εάν χρησιμοποιείτε απευθείας το Elasticsearch, σίγουρα θα αντιμετωπίσετε ενοχλητικά προβλήματα όταν ασχολείστε με αναζητήσεις κινεζικού περιεχομένου.Οι κινεζικές λέξεις χωρίζονται σε κινεζικούς χαρακτήρες μία προς μίαΌταν χρησιμοποιείτε το Kibana για να σχεδιάσετε, ομαδοποιήστε σύμφωνα με τον όρο και ως αποτέλεσμα, ένας κινεζικός χαρακτήρας χωρίζεται σε μια ομάδα.
Ευτυχώς, υπάρχουν δύο πρόσθετα τμηματοποίησης κινεζικών λέξεων γραμμένα από τον medcl (ένας από τους πρώτους ανθρώπους που σπούδασαν ES στην Κίνα), το ένα είναι το ik και το άλλο είναι το mmseg και το παρακάτω εισάγει μόνο τη χρήση του ik.
Το πρόσθετο IK Analysis ενσωματώνει τον αναλυτή Lucene IK στο elasticsearch και υποστηρίζει προσαρμοσμένα λεξικά.
Διεύθυνση έργου elasticsearch-analysis-ik:https://github.com/medcl/elasticsearch-analysis-ik
Εγκαταστήστε το elasticsearch-analysis-ik
Πρώτα, σταματήστε την εκτέλεση του Elasticsearch, το JPS βρίσκει το αναγνωριστικό διεργασίας και σκοτώστε το με το αναγνωριστικό διεργασίας kill -9! (Δεν το δοκίμασα ούτως ή άλλως, ούτως ή άλλως, είναι πιο ασφαλές να σταματήσετε και να εγκαταστήσετε)
Εγκατάσταση χρησιμοποιώντας το elasticsearch-plugin (υποστηρίζεται από την έκδοση 5.5.1):
Σημείωση: Αντικαταστήστε την έκδοση 6.3.0 με τη δική σας έκδοση του elasticsearch
Το εγκατέστησα στον διακομιστή μουΤο Elasticsearch είναι 6.5.2έκδοση, επομένως, η εντολή είναι η εξής:
Το σφάλμα εγκατάστασης έχει ως εξής:
Εξαίρεση στο νήμα "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Δεν επιτρέπεται η λειτουργία
Το πρόσθετο εγκατάστασης Elasticsearch πρέπει να εκτελεστεί ως rootΈτσι, χρησιμοποιούμε su root για να μεταβούμε σε κατάσταση διαχειριστή, να εκτελέσουμε ξανά την εγκατάσταση και είναι επιτυχής, όπως φαίνεται στο παρακάτω σχήμα:
Δοκιμάζουμε υποβάλλοντας ξανά ένα αίτημα ανάρτησης στη διεπαφή και το περιεχόμενο της ανάρτησης έχει ως εξής:
Ανακάλυψα ότι μπορούσα να κατανοήσω τη σημασιολογία μας κανονικά και χώρισα τις λέξεις «αρχιτέκτονας», «όμορφη» και «αρχιτεκτονική» σε μία λέξη.
Ποια είναι η διαφορά μεταξύ ik_max_word και ik_smart;
ik_max_word: Το κείμενο θα χωριστεί στην καλύτερη λεπτομέρεια, όπως ο «Εθνικός Ύμνος της Λαϊκής Δημοκρατίας της Κίνας» θα χωριστεί σε «Λαϊκή Δημοκρατία της Κίνας, Κινεζικός Λαός, Κίνα, Κινέζος, Λαϊκή Δημοκρατία, Λαός, Λαός, Λαός, Δημοκρατία, Αυτός, Εθνικός Ύμνος» και θα εξαντλήσει όλους τους πιθανούς συνδυασμούς.
ik_smart: Θα κάνει το πιο χονδροειδές επίπεδο διάσπασης, όπως ο διαχωρισμός του "Εθνικού Ύμνου της Λαϊκής Δημοκρατίας της Κίνας" σε "Εθνικός Ύμνος της Λαϊκής Δημοκρατίας της Κίνας".
|