Вот некоторые из моих начальных уроков по настройке и настройке, которые, возможно, помогут кому-то запустить его немного быстрее.
Начиная с настройки обоих окон.
Загрузите и распакуйте 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 в области искусства .