Не забудьте поставить звезду в правом верхнем углу для постоянного отслеживания обновлений~~
Панель управления
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Необходимо запустить следующие модули. Порядок запуска произвольный.
Благодарим за открытое приложение по поиску жилья от великого дяди myxw: https://gitee.com/myxw/ElasticSearch_House
Благодарим за открытое приложение easy-es от великого дяди dromara: https://gitee.com/dromara/easy-es### Версии плагинов
RuoYi-Cloud 3.5.0
Nacos 2.0.2
Node.js 14.0.0
npm 6.14.4
elasticsearch 7.14.1
yum install -y yum-utils
# Адрес Docker от Alibaba (внутренний адрес, быстрее)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
docker version # Просмотр версии Docker
systemctl status docker # Просмотр статуса службы Docker
systemctl start docker # Запуск службы Docker
systemctl stop docker # Остановка службы Docker
systemctl status docker # Просмотр статуса службы Docker
systemctl restart docker # Перезапуск службы Docker
vim /etc/docker/daemon.json
# Добавьте следующий контент, замените по необходимости. По умолчанию используется мой адрес
{
"registry-mirrors": ["https://mr63yffu.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker # Перезапуск службы Docker
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# Примените права доступа к исполняемому файлу
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
mkdir -p /data/docker_data/es-kibana
mkdir -p /data/docker_data/es-kibana/es/config
touch /data/docker_data/es-kibana/docker-compose.yml
touch /data/docker_data/es-kibana/es/config/elasticsearch.yml
vim /data/docker_data/es-kibana/docker-compose.yml
vim /data/docker_data/es-kibana/es/config/elasticsearch.yml
cd /data/docker_data/es-kibana
docker-compose up -d # Запуск Elasticsearch
docker-compose down # Остановка Elasticsearch
version: '3.1' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.14.1 container_name: es environment: - discovery.type=single-node - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 mem_limit: 4g volumes: - esdata1:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:7.14.1 container_name: kibana environment: - ELASTICSEARCH_URL=http://es:9200 - SERVER_NAME=kibana ulimits: memlock: soft: -1 hard: -1 mem_limit: 4g ports: - 5601:5601 networks: - esnet volumes: esdata1: driver: local networks: esnet: driver: bridge
версия: '3'
# Бридж es -> Для удобства взаимной коммуникации
networks:
es:
services:
elasticsearch:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/elasticsearch:7.14.1 # Оригинальное зеркало `elasticsearch:7.14.1`
container_name: elasticsearch # Имя контейнера 'elasticsearch'
restart: unless-stopped # Указание политики перезапуска контейнера, чтобы он всегда перезапускался, но не учитывал контейнеры, которые были остановлены при запуске Docker-демона
volumes: # Настройка пути монтирования данных, отображение локального каталога на каталог контейнера
- ". /es/data:/usr/share/elasticsearch/data"
- ". /es/logs:/usr/share/elasticsearch/logs"
- ". /es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
- ". /es/plugins/:/usr/share/elasticsearch/plugins"
environment: # Установка переменных окружения, аналогично параметру -e в команде docker run
TZ: Asia/Shanghai
LANG: en_US.UTF-8
discovery.type: single-node
ES_JAVA_OPTS: "-Xmx512m -Xms512m" ELASTIC_PASSWORD: "123456" # пароль для учетной записи elastic
ports:
- "9202:9200"
- "9302:9300"
networks:
- es
kibana:
image: registry. cn-hangzhou. aliyuncs. com/zhengqing/kibana:7.14.1 # Оригинальное зеркало `kibana:7.14.1`
container_name: kibana
restart: unless-stopped
volumes:
- . /kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
- . /kibana/logs:/usr/share/kibana/logs
environment:
TZ: Asia/Shanghai # Изменение часового пояса контейнера на CST (по умолчанию UTC)
LANG: en_US.UTF-8
ports:
- "5601:5601"
depends_on:
- elasticsearch
links:
- elasticsearch
networks:
- es
elasticsearch-head:
image: wallbase/elasticsearch-head:6-alpine
container_name: elasticsearch-head
restart: unless-stopped
environment:
TZ: 'Asia/Shanghai'
ports:
- '9100:9100'
networks:
- es#### Содержимое файла elasticsearch.yml:
cluster.name: "docker-cluster" network.host: 0.0.0.0 http.port: 9200
http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,Content-Type
#xpack.security.enabled: true #xpack.security.transport.ssl.enabled: true
### 1.4 Установка китайского токенизатора
Сначала скачайте пакет токенизатора с GitHub [elasticsearch-analysis-ik-7.14.1.zip](https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip)
Затем распакуйте его в следующую директорию /data/docker_data/es-kibana/es/plugins/analysis-ik-7.14.1
## Инструкции по запуску
## 1. Подготовка данных перед запуском, создание индексов Elasticsearch
### 1.1 Создание индекса для содержимого статей article
Метод запроса: PUT (используйте Postman для доступа)
Адрес запроса: http://127.0.0.1:9200/article
Содержание запроса: (используйте Postman для доступа)
```json
{
"settings": {
"number_of_replicas": 0
},
"mappings": {
"dynamic": false,
"properties": {
"publishTime": {
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
"type": "date"
},
"articleCover": {
"type": "keyword"
},
"articleType": {
"type": "integer"
},
"publishUserId": {
"type": "keyword"
},
"title": {
"analyzer": "ik_smart",
"type": "text"
},
"categoryId": {
"type": "integer"
}
}
}
}
Параметры:
{
"number_of_replicas": 0 <!-- Количество реплик установлено в 0 -->
}
Правильный ответ:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "article"
}
```------
### 1.2 Создание индекса для поиска недвижимости xunwu
Метод запроса: PUT (используйте Postman для доступа)
Адрес запроса: http://127.0.0.1:9202/xunwu
Содержание запроса: (используйте Postman для доступа)```markdown
{
"settings": {
"number_of_replicas": 0
},
"mappings": {
"dynamic": false,
"properties": {
"id": {
"type": "long"
},
"houseId": {
"type": "long"
},
"title": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart"
},
"price": {
"type": "integer"
},
"area": {
"type": "integer"
},
"createTime": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"lastUpdateTime": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"cityEnName": {
"type": "keyword"
},
"regionEnName": {
"type": "keyword"
},
"direction": {
"type": "integer"
},
"distanceToSubway": {
"type": "integer"
},
"subwayLineName": {
"type": "keyword"
},
"subwayStationName": {
"type": "keyword"
},
"tags": {
"type": "text"
},
"street": {
"type": "keyword"
},
"district": {
"type": "keyword"
},
"description": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart"
},
"layoutDesc": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart"
},
"traffic": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart"
},
"roundService": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart"
},
"rentWay": {
"type": "integer"
},
"suggest": {
"type": "completion"
},
"location": {
"type": "geo_point"
}
}
}
}
```Параметры описания:
```number_of_replicas": 0 <!-- Количество реплик установлено в 0 -->
```---
### 1.3 Удаление индекса (этот шаг не требуется выполнить)
Метод запроса: DELETE (пожалуйста, используйте Postman для доступа)
Адрес запроса: http://127.0.0.1:9202/article
Правильный ответ:
{ "acknowledged": true }
---
### 1.4 Синхронизация данных аренды из MySQL в Elasticsearch (достаточно выполнить запрос к этому интерфейсу)
Метод запроса: GET (пожалуйста, используйте Postman для доступа)
Адрес запроса: http://127.0.0.1:9205/rent/houseDataToEs
Правильный ответ:
{ "code": 200, "message": "OK", "data": "success", "more": false }
---
## 1. Работа с картами Baidu
### 1.1 Получение ключа API Baidu Maps (AK)
(Для локального запуска ключ не требуется, для развертывания проекта на сервере ключ необходим)
Откройте браузер и перейдите по адресу https://lbsyun.baidu.com/, затем перейдите в раздел **Консоль** и выполните личную идентификацию.
После успешной идентификации перейдите в раздел **Консоль** и выберите **Управление приложениями Мои приложения**
Нажмите **Создать приложение** и заполните следующие данные, остальные параметры оставьте по умолчанию.
#### Создание ключа API для браузерной версии
Название приложения:
xunwu-web
Тип приложения:
Браузерная версия
Метод проверки запросов:
Проверка белого списка IP-адресов
Белый список Referer:
0.0.0.0,127.0.0.1,localhost,192.168.1.83,49.232.18.37
#### Создание ключа API для серверной версии
Название приложения: xunwu-server
Тип приложения:
Серверная версия
Метод проверки запросов:
Проверка белого списка IP-адресов
Белый список Referer:
0.0.0.0/0, 0.0.0.0, 127.0.0.1, 49.232.18.37
### 1.2 Замена ключа API в коде на полученный ключ
Замените строку кода 39 в следующем файле на полученный ключ для серверной версии:
https://gitee.com/avatarwx/ruoyi-cloud-es/blob/master/ruoyi-modules/ruoyi-modules-news/src/main/java/com/ruoyi/news/service/house/AddressServiceImpl.java
Замените строку кода 90 в следующем файле на полученный ключ для браузерной версии:
https://gitee.com/avatarwx/ruoyi-cloud-es/blob/master/ruoyi-modules/ruoyi-modules-news/src/main/resources/templates/rent-map.html
### 1.3 Если карта не загружается, закройте ваш прокси или VPN.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )