Децентрализованная поисковая система для моего сайта - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь создать поисковую систему для своего сайта, но я хочу, чтобы она была децентрализована.У меня есть база данных документов, и я создам инвертированный индекс, а затем хочу децентрализовать серверы индекса.Не могли бы вы предложить, что делать в этом случае и с чего начать мой проект?Можно ли использовать эластичный поиск для индексации и добавить поверх него децентрализацию?

Я новичок в децентрализации, и поэтому любая помощь или ссылки для создания децентрализованной поисковой системы будут с благодарностью.

1 Ответ

0 голосов
/ 11 апреля 2019

Использование ElasticSearch идеально подойдет для вашего случая использования.Цитирование с сайтаasticSearch -

Elasticsearch - это распределенный поисковый и аналитический движок RESTful, способный решать растущее число вариантов использования.

Кластеры ElasticSearch - это группаузлы каждый работает служба ES.Для хранения ваших данных и обеспечения их возможности поиска вы определяете индексы (индекс - это, в основном, структура, которая определяет, как ваши данные выглядят), определяя отображение индекса.

{
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "students" : {
            "properties" : {
                "studentId" : { "type" : "keyword" },
"admissionDate" : {"type":"Date"}
            }
        }
    }
}

Вы можете прочитать больше о отображенияхотсюда - ElasticSearch Mappings

Хорошее место, чтобы начать ваше общее путешествие сasticSearch - прочитать начальную документацию - ElasticSearch Getting Started

Операции CRUD для индекса в ES предоставляются - API индексов

Вы сохраняете (индексируете) данные в индексе ES - API документов

Вы можете осуществлять поиск в своих индексированных данных с помощью различных API-интерфейсов поиска, которые предоставляет ES - API-интерфейс поиска и Query DSL (Query Language for ES) - ES Query DSL

Если вас интересует распределенная система, вы можете создать кластер с несколькими узлами, каждый из которых будет работать на отдельном сервере, а ES внутренне заботится о маршрутизации.Запросы между различными узлами в кластере.Простое добавление правильного имени кластера в узелasticsearch.yml добавит этот узел в кластер.

...