Вот некоторые из моих начальных уроков по настройке и настройке, которые, возможно, помогут кому-то запустить его немного быстрее.
Начиная с настройки обоих окон.
Загрузите и распакуйте Apache Tomcat и Solr и скопируйте их в рабочие папки.
Настройка Tomcat
Если вы хотите использовать tomcat в качестве службы, установите его, используя следующее:
bin \ service.bat установить
Отредактируйте пользователей tomcat под conf .:
|
1
2
3
|
<role rolename="admin"/><role rolename="manager-gui"/><user username="tomcat" password="tomcat" roles="admin,manager-gui"/> |
Если вы собираетесь запрашивать Solr, используя международные символы (> 127), используя HTTP-GET, вы должны настроить Tomcat на соответствие стандарту URI, принимая кодировку UTF-8 в процентах. Добавить: URIEncoding = ‘UTF-8 ′
|
1
2
3
4
|
<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"URIEncoding="UTF-8" /> |
в conf / server.xml
Скопируйте содержимое примера \ solr в ваш домашний каталог solr D: \ Java \ apache-solr-3.6.0 \ home
создайте фрагмент кода в $ CATALINA_HOME / conf / Catalina / localhost / solr.xml, указывающий на ваш домашний сайт.
|
1
2
3
4
|
<?xml version="1.0" encoding="UTF-8"?><context docBase="D:\Java\apache-tomcat-7.0.27\webapps\solr.war" debug="0" crossContext="true" > <environment name="solr/home" type="java.lang.String" value="D:\Java\apache-solr-3.6.0\home" override="true" /></Context> |
Запустите Tomcat, войдите, разверните solr.war.
Solr Setup
Он должен быть доступен по адресу http: // localhost: 8080 / solr / admin /. Чтобы создать быстрый тест с использованием SolrJ, создает и считывает данные: возьмите следующие библиотеки Maven:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<dependency> <groupid>org.apache.solr</groupId> <artifactid>apache-solr-solrj</artifactId> <version>3.6.0</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupid>org.apache.httpcomponents</groupId> <artifactid>httpclient</artifactId> <version>4.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>org.apache.httpcomponents</groupId> <artifactid>httpcore</artifactId> <version>4.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>org.apache.james</groupId> <artifactid>apache-mime4j</artifactId> <version>0.6.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>org.apache.httpcomponents</groupId> <artifactid>httpmime</artifactId> <version>4.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>org.slf4j</groupId> <artifactid>slf4j-api</artifactId> <version>1.6.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>commons-logging</groupId> <artifactid>commons-logging</artifactId> <version>1.1.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>junit</groupId> <artifactid>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> |
JUnit test:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
package za.co.discovery.ecs.solr.test; import java.io.File;import java.io.FileReader;import java.io.IOException;import java.net.MalformedURLException;import java.net.URISyntaxException;import java.util.ArrayList;import java.util.Collection; import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrServer;import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.HttpSolrServer;import org.apache.solr.client.solrj.response.QueryResponse;import org.apache.solr.common.SolrDocument;import org.apache.solr.common.SolrDocumentList;import org.apache.solr.common.SolrInputDocument;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.JUnit4; @RunWith(JUnit4.class)public class TestSolr { private SolrServer server; /** * setup. */ @Before public void setup() { try { server.deleteByQuery("*:*"); } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * Test Adding. * * @throws MalformedURLException error */ @Test public void testAdding() throws MalformedURLException { try { final SolrInputDocument doc1 = new SolrInputDocument(); doc1.addField("id", "id1", 1.0f); doc1.addField("name", "doc1", 1.0f); doc1.addField("price", 10); final SolrInputDocument doc2 = new SolrInputDocument(); doc2.addField("id", "id2", 1.0f); doc2.addField("name", "doc2", 1.0f); doc2.addField("price", 20); final Collection<solrinputdocument> docs = new ArrayList<solrinputdocument>(); docs.add(doc1); docs.add(doc2); server.add(docs); server.commit(); final SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.addSortField("price", SolrQuery.ORDER.asc); final QueryResponse rsp = server.query(query); final SolrDocumentList solrDocumentList = rsp.getResults(); for (final SolrDocument doc : solrDocumentList) { final String name = (String) doc.getFieldValue("name"); final String id = (String) doc.getFieldValue("id"); //id is the uniqueKey field System.out.println("Name:" + name + " id:" + id); } } catch (SolrServerException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } catch (IOException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } } |
Добавление данных напрямую из БД
Во-первых, вам нужно добавить соответствующие библиотеки БД в путь добавления классов. Затем создайте data-config.xml, как показано ниже, если вам требуются настраиваемые поля, они могут быть указаны под тегом fields в schema.xml, показанном под dataconfig.xml.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
<dataconfig> <datasource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1525:DB" user="user" password="pass"/> <document name="products"> <entity name="item" query="select * from demo"> <field column="ID" name="id" /> <field column="DEMO" name="demo" /> <entity name="feature" query="select description from feature where item_id='${item.ID}'"> <field name="features" column="description" /> </entity> <entity name="item_category" query="select CATEGORY_ID from item_category where item_id='${item.ID}'"> <entity name="category" query="select description from category where id = '${item_category.CATEGORY_ID}'"> <field column="description" name="cat" /> </entity> </entity> </entity> </document> </dataConfig> |
Настраиваемое поле в schema.xml:
|
1
2
3
|
<fields> <field name="DEMO" type="string" indexed="true" stored="true" required="true" /> </fields |
Добавьте в solrconfig.xml и укажите data-config.xml, обработчик должен быть зарегистрирован в solrconfig.xml следующим образом
|
1
2
3
4
5
|
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst></requestHandler> |
После того, как все это настроено, полный импорт можно выполнить с помощью следующего:
HTTP: // локальный: 8080 / Solr / администратор / dataimport команда = полный импорт
Тогда вам следует хорошо провести молниеносный поиск данных.
Ссылка: Настройка и игра с Apache Solr на Tomcat от нашего партнера по JCG Брайана Дю Приза в блоге Zen в области искусства .