2. Разархивируйте загруженный сжатый пакет, чтобы завершить установку Solr.
3. Откройте DOS, переключите путь на solr_home\bin, выполните команду: solr start –p 8983, запустите solr на порту 8983 и посмотрите на следующую картинку, подтверждающую, что solr успешно запущен. (порт Solr по умолчанию — 8983)
4. Посетите: localhost:8983 в браузере, появятся следующие страницы
На этом установка solr завершена.
2. Создайте ядро
2.1 Подготовка перед созданием ядра
Каждое ядро является экземпляром solr, служба solr может создавать несколько ядер, и каждое ядро можно настроить независимо.
1. Перейдите в каталог solr_home\server\solr, например: E:\solr-8.1.1\server\solr, создайте в этом каталоге папку, имя папки совпадает с именем ядра._v_images/2019062
2. Скопируйте папку conf по пути E:\solr-8.1.1\server\solr\configsets_default в каталог new_core (E:\solr-8.1.1\server\solr\new_core).
2.2 Создание ядра
Способ 1. Откройте интерфейс solr и выполните последовательность операций, как показано на рисунке.
Этот метод должен создать папку New_Core в каталоге E: \ Solr-8.1.1 \ Server \ Solr-8.1.1.
Второй способ: введите команду в каталоге Bin: Solr Создать -C New_core (рекомендуется)
Три, схема
Такой файл конфигурации схемы есть в каждом ядре ядра.
Файл схемы может определять тип данных библиотеки индексов и настраивать, будут ли поля индексироваться и сохраняться.Его необходимо настраивать отдельно для жестокости.
Типа данных схемы достаточно.Если он не соответствует требованиям, таким как сегментация китайских слов, сегментация слов пиньинь и т. д., вы можете настроить токенизатор.
Имя файла конфигурации схемы Solr8.1.1 — управляемая схема, home\server\solr\new_core\conf\managed-schema (E:\solr-8.1.1\server\solr\core_issuer\conf).
3.1 Основные члены схемы
(1) fieldType: определите тип поля. Основная функция заключается в определении токенизатора. Токенизатор определяет, как извлекать ключевые слова из документа.
(2) анализатор: подэлемент fieldType, представляющий собой токенизатор, состоящий из токенизатора и фильтра. Например
(3) поле: поле, используемое для создания индекса.Если это поле необходимо для создания индекса, для индексируемого необходимо установить значение true, а для хранимого атрибута необходимо установить значение true. Например:
Способ 2: добавить через страницу solr. (рекомендуется, не нужно перезапускать службу)

3.3 Настройка инструмента сегментации китайских слов
1. Скачайте китайский токенизатор IKAnalyzer,ссылка на скачивание, пароль: igt9.
2. Разархивируйте сжатый пакет, каталог выглядит следующим образом:
3. Скопируйте два пакета jar по этому пути: E:\solr-8.1.1\server\solr-webapp\webapp\WEB-INF\lib.
4. Кроме того, скопируйте три файла конфигурации по этому пути: E:\solr-8.1.1\server\solr-webapp\webapp\WEB-INF\classes. Если папки классов нет, создайте новую.
Не добавляйте поле id, это поле уже существует, и если вы его добавите, будет сообщено об ошибке
4. Откройте файл по этому пути: solr_home\server\solr\new_core\conf\solrconfig.xml (E:\solr-8.1.1\server\solr\core_issuer\conf\solrconfig.xml), найдите любой, который то же, что и requestHandler. Добавьте следующую конфигурацию на узел уровня. Как показано на рисунке:
5. Скопируйте solr-dataimporthandler-8.1.1.jar и драйвер MySQL (просто найдите драйвер MySQL) в каталоге solr_home\dist (E:\solr-8.1.1\dist) в solr_home\server\solr-webapp\ webapp Каталог \WEB-INF\lib (E:\solr-8.1.1\server\solr-webapp\webapp\WEB-INF\lib).
6. Перезапустите службу Solr.
7. Откройте страницу решения и выполните следующие операции.
8. Проверьте, успешно ли импортированы данные
Если сегментация китайских слов выполняется в поле индекса
При добавлении пары полей индекса тип файла: выберите text_ik
Эффект показан на рисунке:
ЗапросЛюкси Кемикалрезультат
public class User {
@Field(value = "id")
private String id;
@Field(value = "name")
private String name;
@Field(value = "age")
private Integer age;
@Field(value = "hobby")
private String hobby;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", hobby=" + hobby +
'}';
}
}
5.3 Напишите тестовый код
public class Main {
private static final String SOLR_URL = "http://localhost:8888/solr";
private static final String CORE_NAME = "new_core";
public static void main(String[] args) throws IOException, SolrServerException {
HttpSolrClient client = new HttpSolrClient.Builder(SOLR_URL).withConnectionTimeout(10000).withSocketTimeout(60000).build();
SolrQuery query = new SolrQuery();
//设置要查询的字段
query.setFields("id","name", "age","hobby");
//查询全部
QueryResponse response = client.query(CORE_NAME,query);
//查询结果
SolrDocumentList results = response.getResults();
System.out.println("结果总数:" + results.getNumFound());
//遍历列表
System.out.println("文档结果:");
for (SolrDocument doc : results) {
System.out.printf("[id:%s,name:%s,age:%s,hobby:%s]\n", doc.get("id"), doc.get("name"), doc.get("age"), doc.get("hobby"));
}
//得到实体对象
List<User> userList = response.getBeans(User.class);
System.out.println("转为实体对象:\n"+Arrays.toString(userList.toArray()));
}
}
**Одиночный запрос по условию: **
//查询name为“陈龙”的user
query.set("q","name:陈龙" );
запрос фильтра
//查询name为“陈龙”的user
query.set("q","name:陈龙" );
6. Регулярное перестроение индекса в реальном времени и добавочное обновление
Готов к работе:
1. Загрузите jar-пакет: solr-dataimportscheduler-1.1.jar (в Интернете есть и версия 1.0, но, пожалуйста, найдите соответствующую версию solr самостоятельно)ссылка на скачивание
**Обратите внимание (важные вещи говорят три раза): при версии solr7+ выше будут проблемы с пакетом jar.После настройки сервер начнет выдавать ошибку, а страница будет 404. Конкретные подробности последует решение. **
2. Создайте новый файл: dataimport.properties. Просто скопируйте файл ниже. Конкретное значение конфигурации было прокомментировано:
#################################################
# #
# dataimport scheduler properties #
# #
#################################################
# to sync or not to sync
# 1 - active; anything else - inactive
# 这里的配置不用修改
syncEnabled=1
# which cores to schedule
# in a multi-core environment you can decide which cores you want syncronized
# leave empty or comment it out if using single-core deployment
# 修改成你所使用的core,我这里是我自定义的core:simple
syncCores=core_issuer
# solr server name or IP address
# [defaults to localhost if empty]
这个一般都是localhost不会变
server=localhost
# solr server port
# [defaults to 80 if empty]
# 安装solr的tomcat端口,如果你使用的是默认的端口,就不用改了,否则改成自己的端口就好了
port=8983
# application name/context
# [defaults to current ServletContextListener's context (app) name]
# 这里默认不改
webapp=solr
# URL params [mandatory]
# remainder of URL
# 这里改成下面的形式,solr同步数据时请求的链接 (我这里使用的 full-import )
params=/dataimport?command=full-import&clean=true&commit=true
# schedule interval
# number of minutes between two runs
# [defaults to 30 if empty]
#这里是设置定时任务的,单位是分钟,也就是多长时间你检测一次数据同步,根据项目需求修改
# 开始测试的时候为了方便看到效果,时间可以设置短一点
interval=1
# 重做索引的时间间隔,单位分钟,默认7200,即5天;
# 为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=7200
# 重做索引的参数
reBuildIndexParams=/select?qt=/dataimport&command=full-import&clean=true&commit=true
# 重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
# 两种格式:2012-04-11 03:10:00 或者 03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=03:10:00
Подготовьте этот пакет jar и файл dataimport.properties, выполните следующие шаги...
Шаг 1. Скопируйте пакет solr-dataimportscheduler.jar в E:\solr-8.1.1\server\solr-webapp\webapp\WEB-INF\lib.
Шаг 2. Добавьте конфигурацию мониторинга (перед меткой) в файл web.xml в каталоге E:\solr-8.1.1\server\solr-webapp\webapp\WEB-INF:
Примечание (еще одно примечание): после org.apache.solr.handler.dataimport.scheduler.ApplicationListener нельзя ставить пробелы, иначе может быть сообщено об ошибке, и найти причину проблемы будет сложно.
Шаг 3: Создайте новую папку conf в каталоге \solrhome (тот же каталог, что и простая папка) и поместите файл dataimport.properties в папку conf.
Шаг 4: Перезапустите tomcat и войдите в Solr.
Семь, два метода удаления библиотеки индексов (удалить все данные)
1. Метод 1 для удаления всех данных в библиотеке индексов: удаление непосредственно с помощью визуального интерфейса solr.
2. Способ 2 удаления всех данных в библиотеке индексов: удалить все данные методом solrClient