- 浏览: 131523 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
kunsyliu:
...
iframe内的button关闭包裹iframe的div -
ksgameboy:
无法实现跨域调用,假设iframe的src="ht ...
iframe内的button关闭包裹iframe的div -
sxwtsuchen:
这个是什么意思了
textarea长度限制 -
千秋万世:
这个方法受到浏览器的限制,不通用。
textarea长度限制 -
shencaifeixia:
不错不错,我一直用&&,今天才知道和& ...
警告:Parameters: Invalid chunk ignored.
« 在 Grails 中使用 TinyMCE 富文本编辑器 安装 HAProxy 配置负载均衡 » Solr 使用入门介绍,以搜索论坛帖子为示例
发表于:2009年5月27日 | 分类:Search | 标签: solr | views(1,581)
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
原文出处:http://blog.chenlb.com/2009/05/apache-solr-quick-start-and-demo.html
前些日子做了个 apache solr 应用的入门介绍,也在博客记录下,方便新手看看。以搜索论坛帖子为示例。
1、先下载 Apache Solr 1.3 http://apache.etoak.com/lucene/solr/1.3.0/apache-solr-1.3.0.zip,解压到如 E:\apache-solr-1.3.0。
2、下载 Apache Tomcat 6.0.18 http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip,解压到如 E:\apache-tomcat-6.0.18。
3、solr 安装到 tomcat。修改 E:\apache-tomcat-6.0.18\conf\server.xml,加个 URIEncoding="UTF-8",把 8080 的那一块改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
把下面的内容保存到 E:\apache-tomcat-6.0.18\conf\Catalina\localhost\solr.xml,没有这个目录自行创建。
<Context docBase="E:/apache-solr-1.3.0/dist/apache-solr-1.3.0.war" reloadable="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-1.3.0/example/solr" override="true" />
</Context>
<Context docBase="E:/apache-solr-1.3.0/dist/apache-solr-1.3.0.war" reloadable="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-1.3.0/example/solr" override="true" />
</Context>
solr 的更多方式请看:solr install
4、现在安装好,启动 tomcat,并打开 http://localhost:8080/solr/admin/ 看看界面。
5、为搜索论坛帖子应用设计索引结构:
字段 说明
id 帖子 id
user 发表用户名或UserId
title 标题
content 内容
timestamp 发表时间
text 把标题和内容放到这里,可以用同时搜索这些内容。
6、上面的索引结构告诉 solr,把下面的内容覆盖 E:\apache-solr-1.3.0\example\solr\conf\scheam.xml,(可以先备份这文件,方便以后看官方示例):
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.1">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
is a more restricted form of the canonical representation of dateTime
http://www.w3.org/TR/xmlschema-2/#dateTime
The trailing "Z" designates UTC time and is mandatory.
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
All other components are mandatory.
Expressions can also be used to denote calculations that should be
performed relative to "NOW" to determine the value, ie...
NOW/HOUR
... Round to the start of the current hour
NOW-1DAY
... Exactly 1 day prior to now
NOW/DAY+6MONTHS+3DAYS
... 6 months and 3 days in the future from the start of
the current day
Consult the DateField javadocs for more information.
-->
<fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.CJKTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="id" type="sint" indexed="true" stored="true" required="true" />
<field name="user" type="string" indexed="true" stored="true"/>
<field name="title" type="text" indexed="true" stored="true"/>
<field name="content" type="text" indexed="true" stored="true" />
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW"/>
<!-- catchall field, containing all other searchable text fields (implemented
via copyField further on in this schema -->
<field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
</fields>
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
<!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>text</defaultSearchField>
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="AND"/>
<!-- copyField commands copy one field to another at the time a document
is added to the index. It's used either to index the same field differently,
or to add multiple fields to the same field for easier/faster searching. -->
<!-- -->
<copyField source="title" dest="text"/>
<copyField source="content" dest="text"/>
</schema>
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.1">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
is a more restricted form of the canonical representation of dateTime
http://www.w3.org/TR/xmlschema-2/#dateTime
The trailing "Z" designates UTC time and is mandatory.
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
All other components are mandatory.
Expressions can also be used to denote calculations that should be
performed relative to "NOW" to determine the value, ie...
NOW/HOUR
... Round to the start of the current hour
NOW-1DAY
... Exactly 1 day prior to now
NOW/DAY+6MONTHS+3DAYS
... 6 months and 3 days in the future from the start of
the current day
Consult the DateField javadocs for more information.
-->
<fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.CJKTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="id" type="sint" indexed="true" stored="true" required="true" />
<field name="user" type="string" indexed="true" stored="true"/>
<field name="title" type="text" indexed="true" stored="true"/>
<field name="content" type="text" indexed="true" stored="true" />
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW"/>
<!-- catchall field, containing all other searchable text fields (implemented
via copyField further on in this schema -->
<field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
</fields>
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
<!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>text</defaultSearchField>
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="AND"/>
<!-- copyField commands copy one field to another at the time a document
is added to the index. It's used either to index the same field differently,
or to add multiple fields to the same field for easier/faster searching. -->
<!-- -->
<copyField source="title" dest="text"/>
<copyField source="content" dest="text"/>
</schema>
7、重启 tomcat,然后手动在 E:\apache-solr-1.3.0\example\exampledocs 创建两个 xml 数据文件。分别保存为 demo-doc1.xml 和 demo-doc2.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">1</field>
<field name="user">chenlb</field>
<field name="title">solr 应用演讲</field>
<field name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</field>
</doc>
</add>
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">1</field>
<field name="user">chenlb</field>
<field name="title">solr 应用演讲</field>
<field name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</field>
</doc>
</add>
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">2</field>
<field name="user">bory.chan</field>
<field name="title">搜索引擎</field>
<field name="content">搜索服务器那边有很多数据。</field>
<field name="timestamp">2009-02-18T00:00:00Z</field>
</doc>
<doc>
<field name="id">3</field>
<field name="user">other</field>
<field name="title">这是什么</field>
<field name="content">你喜欢什么运动?篮球?</field>
<field name="timestamp">2009-02-18T12:33:05.123Z</field>
</doc>
</add>
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">2</field>
<field name="user">bory.chan</field>
<field name="title">搜索引擎</field>
<field name="content">搜索服务器那边有很多数据。</field>
<field name="timestamp">2009-02-18T00:00:00Z</field>
</doc>
<doc>
<field name="id">3</field>
<field name="user">other</field>
<field name="title">这是什么</field>
<field name="content">你喜欢什么运动?篮球?</field>
<field name="timestamp">2009-02-18T12:33:05.123Z</field>
</doc>
</add>
8、提交数据做索引,到 E:\apache-solr-1.3.0\example\exampledocs,运行:
E:\apache-solr-1.3.0\example\exampledocs>java -Durl=http://localhost:8080/solr/update -Dcommit=yes -jar post.jar demo-doc*.xml
SimplePostTool: version 1.2
SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported
SimplePostTool: POSTing files to http://localhost:8080/solr/update..
SimplePostTool: POSTing file demo-doc1.xml
SimplePostTool: POSTing file demo-doc2.xml
SimplePostTool: COMMITting Solr index changes..9、查看搜索结果:
所有内容 http://localhost:8080/solr/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">*:*</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="3" start="0">
<doc>
<str name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</str>
<int name="id">1</int>
<date name="timestamp">2009-05-27T04:07:54.89Z</date>
<str name="title">solr 应用演讲</str>
<str name="user">chenlb</str>
</doc>
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">*:*</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="3" start="0">
<doc>
<str name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</str>
<int name="id">1</int>
<date name="timestamp">2009-05-27T04:07:54.89Z</date>
<str name="title">solr 应用演讲</str>
<str name="user">chenlb</str>
</doc>
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
bory.chan 用户的:http://localhost:8080/solr/select/?q=user%3Abory.chan&version=2.2&start=0&rows=10&indent=on
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">user:bory.chan</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
</result>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">user:bory.chan</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
</result>
</response>
时间 http://localhost:8080/solr/select/?q=timestamp%3A%5B%222009-02-18T00%3A00%3A00Z%22+TO+%222009-02-19T00%3A00%3A00Z%22%5D&version=2.2&start=0&rows=10&indent=on
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">16</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">timestamp:["2009-02-18T00:00:00Z" TO "2009-02-19T00:00:00Z"]</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">16</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">timestamp:["2009-02-18T00:00:00Z" TO "2009-02-19T00:00:00Z"]</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
常用的 solr 查询参数请看:solr 查询参数说明
简单的示例已经完成了,索引文件(默认)会在 CWD/solr/data/index 目录下,要改为 solr.home/data目录下,在 F:\apache-solr-1.3.0\example\solr\conf\solrconfig.xml 把 dataDir 注释掉,如:
<!--
<dataDir>${solr.data.dir:./solr/data}</dataDir>
-->
<!--
<dataDir>${solr.data.dir:./solr/data}</dataDir>
-->
说明:上面没有使用中文分词,用官方的 CJK 分词,另外有 mmseg4j 中文分词的示例,请看:solr 中文分词 mmseg4j 使用例子
发表于:2009年5月27日 | 分类:Search | 标签: solr | views(1,581)
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
原文出处:http://blog.chenlb.com/2009/05/apache-solr-quick-start-and-demo.html
前些日子做了个 apache solr 应用的入门介绍,也在博客记录下,方便新手看看。以搜索论坛帖子为示例。
1、先下载 Apache Solr 1.3 http://apache.etoak.com/lucene/solr/1.3.0/apache-solr-1.3.0.zip,解压到如 E:\apache-solr-1.3.0。
2、下载 Apache Tomcat 6.0.18 http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.zip,解压到如 E:\apache-tomcat-6.0.18。
3、solr 安装到 tomcat。修改 E:\apache-tomcat-6.0.18\conf\server.xml,加个 URIEncoding="UTF-8",把 8080 的那一块改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
把下面的内容保存到 E:\apache-tomcat-6.0.18\conf\Catalina\localhost\solr.xml,没有这个目录自行创建。
<Context docBase="E:/apache-solr-1.3.0/dist/apache-solr-1.3.0.war" reloadable="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-1.3.0/example/solr" override="true" />
</Context>
<Context docBase="E:/apache-solr-1.3.0/dist/apache-solr-1.3.0.war" reloadable="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-1.3.0/example/solr" override="true" />
</Context>
solr 的更多方式请看:solr install
4、现在安装好,启动 tomcat,并打开 http://localhost:8080/solr/admin/ 看看界面。
5、为搜索论坛帖子应用设计索引结构:
字段 说明
id 帖子 id
user 发表用户名或UserId
title 标题
content 内容
timestamp 发表时间
text 把标题和内容放到这里,可以用同时搜索这些内容。
6、上面的索引结构告诉 solr,把下面的内容覆盖 E:\apache-solr-1.3.0\example\solr\conf\scheam.xml,(可以先备份这文件,方便以后看官方示例):
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.1">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
is a more restricted form of the canonical representation of dateTime
http://www.w3.org/TR/xmlschema-2/#dateTime
The trailing "Z" designates UTC time and is mandatory.
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
All other components are mandatory.
Expressions can also be used to denote calculations that should be
performed relative to "NOW" to determine the value, ie...
NOW/HOUR
... Round to the start of the current hour
NOW-1DAY
... Exactly 1 day prior to now
NOW/DAY+6MONTHS+3DAYS
... 6 months and 3 days in the future from the start of
the current day
Consult the DateField javadocs for more information.
-->
<fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.CJKTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="id" type="sint" indexed="true" stored="true" required="true" />
<field name="user" type="string" indexed="true" stored="true"/>
<field name="title" type="text" indexed="true" stored="true"/>
<field name="content" type="text" indexed="true" stored="true" />
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW"/>
<!-- catchall field, containing all other searchable text fields (implemented
via copyField further on in this schema -->
<field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
</fields>
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
<!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>text</defaultSearchField>
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="AND"/>
<!-- copyField commands copy one field to another at the time a document
is added to the index. It's used either to index the same field differently,
or to add multiple fields to the same field for easier/faster searching. -->
<!-- -->
<copyField source="title" dest="text"/>
<copyField source="content" dest="text"/>
</schema>
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.1">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
is a more restricted form of the canonical representation of dateTime
http://www.w3.org/TR/xmlschema-2/#dateTime
The trailing "Z" designates UTC time and is mandatory.
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
All other components are mandatory.
Expressions can also be used to denote calculations that should be
performed relative to "NOW" to determine the value, ie...
NOW/HOUR
... Round to the start of the current hour
NOW-1DAY
... Exactly 1 day prior to now
NOW/DAY+6MONTHS+3DAYS
... 6 months and 3 days in the future from the start of
the current day
Consult the DateField javadocs for more information.
-->
<fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.CJKTokenizerFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="id" type="sint" indexed="true" stored="true" required="true" />
<field name="user" type="string" indexed="true" stored="true"/>
<field name="title" type="text" indexed="true" stored="true"/>
<field name="content" type="text" indexed="true" stored="true" />
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW"/>
<!-- catchall field, containing all other searchable text fields (implemented
via copyField further on in this schema -->
<field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
</fields>
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
<!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>text</defaultSearchField>
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="AND"/>
<!-- copyField commands copy one field to another at the time a document
is added to the index. It's used either to index the same field differently,
or to add multiple fields to the same field for easier/faster searching. -->
<!-- -->
<copyField source="title" dest="text"/>
<copyField source="content" dest="text"/>
</schema>
7、重启 tomcat,然后手动在 E:\apache-solr-1.3.0\example\exampledocs 创建两个 xml 数据文件。分别保存为 demo-doc1.xml 和 demo-doc2.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">1</field>
<field name="user">chenlb</field>
<field name="title">solr 应用演讲</field>
<field name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</field>
</doc>
</add>
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">1</field>
<field name="user">chenlb</field>
<field name="title">solr 应用演讲</field>
<field name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</field>
</doc>
</add>
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">2</field>
<field name="user">bory.chan</field>
<field name="title">搜索引擎</field>
<field name="content">搜索服务器那边有很多数据。</field>
<field name="timestamp">2009-02-18T00:00:00Z</field>
</doc>
<doc>
<field name="id">3</field>
<field name="user">other</field>
<field name="title">这是什么</field>
<field name="content">你喜欢什么运动?篮球?</field>
<field name="timestamp">2009-02-18T12:33:05.123Z</field>
</doc>
</add>
<?xml version="1.0" encoding="UTF-8" ?>
<add>
<doc>
<field name="id">2</field>
<field name="user">bory.chan</field>
<field name="title">搜索引擎</field>
<field name="content">搜索服务器那边有很多数据。</field>
<field name="timestamp">2009-02-18T00:00:00Z</field>
</doc>
<doc>
<field name="id">3</field>
<field name="user">other</field>
<field name="title">这是什么</field>
<field name="content">你喜欢什么运动?篮球?</field>
<field name="timestamp">2009-02-18T12:33:05.123Z</field>
</doc>
</add>
8、提交数据做索引,到 E:\apache-solr-1.3.0\example\exampledocs,运行:
E:\apache-solr-1.3.0\example\exampledocs>java -Durl=http://localhost:8080/solr/update -Dcommit=yes -jar post.jar demo-doc*.xml
SimplePostTool: version 1.2
SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported
SimplePostTool: POSTing files to http://localhost:8080/solr/update..
SimplePostTool: POSTing file demo-doc1.xml
SimplePostTool: POSTing file demo-doc2.xml
SimplePostTool: COMMITting Solr index changes..9、查看搜索结果:
所有内容 http://localhost:8080/solr/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">*:*</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="3" start="0">
<doc>
<str name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</str>
<int name="id">1</int>
<date name="timestamp">2009-05-27T04:07:54.89Z</date>
<str name="title">solr 应用演讲</str>
<str name="user">chenlb</str>
</doc>
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">*:*</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="3" start="0">
<doc>
<str name="content">这一小节是讲提交数据给服务器做索引,这里有一些数据,如:服务器,可以试查找它。</str>
<int name="id">1</int>
<date name="timestamp">2009-05-27T04:07:54.89Z</date>
<str name="title">solr 应用演讲</str>
<str name="user">chenlb</str>
</doc>
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
bory.chan 用户的:http://localhost:8080/solr/select/?q=user%3Abory.chan&version=2.2&start=0&rows=10&indent=on
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">user:bory.chan</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
</result>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">user:bory.chan</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
</result>
</response>
时间 http://localhost:8080/solr/select/?q=timestamp%3A%5B%222009-02-18T00%3A00%3A00Z%22+TO+%222009-02-19T00%3A00%3A00Z%22%5D&version=2.2&start=0&rows=10&indent=on
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">16</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">timestamp:["2009-02-18T00:00:00Z" TO "2009-02-19T00:00:00Z"]</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">16</int>
<lst name="params">
<str name="indent">on</str>
<str name="start">0</str>
<str name="q">timestamp:["2009-02-18T00:00:00Z" TO "2009-02-19T00:00:00Z"]</str>
<str name="rows">10</str>
<str name="version">2.2</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="content">搜索服务器那边有很多数据。</str>
<int name="id">2</int>
<date name="timestamp">2009-02-18T00:00:00Z</date>
<str name="title">搜索引擎</str>
<str name="user">bory.chan</str>
</doc>
<doc>
<str name="content">你喜欢什么运动?篮球?</str>
<int name="id">3</int>
<date name="timestamp">2009-02-18T12:33:05.123Z</date>
<str name="title">这是什么</str>
<str name="user">other</str>
</doc>
</result>
</response>
常用的 solr 查询参数请看:solr 查询参数说明
简单的示例已经完成了,索引文件(默认)会在 CWD/solr/data/index 目录下,要改为 solr.home/data目录下,在 F:\apache-solr-1.3.0\example\solr\conf\solrconfig.xml 把 dataDir 注释掉,如:
<!--
<dataDir>${solr.data.dir:./solr/data}</dataDir>
-->
<!--
<dataDir>${solr.data.dir:./solr/data}</dataDir>
-->
说明:上面没有使用中文分词,用官方的 CJK 分词,另外有 mmseg4j 中文分词的示例,请看:solr 中文分词 mmseg4j 使用例子
发表评论
文章已被作者锁定,不允许评论。
相关推荐
在这个"solr入门java工程"中,我们将探讨如何使用Java客户端与华为FusionInsight SolrTest进行交互,以及如何在SolrCloud模式下进行分布式搜索。 首先,让我们了解Solr的基本概念。Solr的核心功能是提供高效的全文...
### Solr学习入门教程知识点详解 #### 一、Solr概览 Solr是一个开源的企业级搜索服务器,采用Java作为底层开发语言,具备高度的可扩展性和灵活性。它通过标准的HTTP协议和XML格式进行通信,这意味着即使不精通Java...
"Solr 使用入门介绍,以搜索论坛帖子为示例 - Bory_Chan.mht"提供了Solr的基础教程,通过实际的论坛帖子搜索场景,帮助初学者快速理解Solr的工作原理和使用方法。 "Solr Multicore 结合 Solr Distributed Searching...
本教程将深入探讨Solr的基本概念、安装配置、索引管理、查询操作以及solrJ库的使用,同时也涉及到了IK分词器的详细应用。 首先,让我们了解一下Solr的核心概念。Solr是基于Lucene的搜索服务器,它可以快速地处理...
solr学习入门经典教程,赶紧学习吧,从solr的搭建讲起,中文分词器的配置
- `lucidworks-solr-refguide-官方版solr3.4.pdf`: 这是Solr 3.4的官方参考指南,详细介绍了Solr的功能和使用方法,对于初学者来说是一本很好的入门资料。 - `struts2 core doc`: Struts2是一个流行的Java Web框架...
Solr4.4.0是Solr的一个版本号,本篇文章将介绍如何安装和配置Solr4.4.0来搭建一个基本的搜索服务。 安装和配置Solr4.4.0通常包括以下步骤: 第一步,下载Solr4.4.0安装包。可以通过访问Solr的官方网站下载相应的...
Solr配置入门教程主要涉及如何将数据从MySQL数据库和XML文件导入到Solr索引中。以下是详细步骤和相关知识点: 1. **下载与解压Solr**:首先需要从官方源获取Apache Solr的最新版本,并将其解压缩到一个合适的文件夹...
标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...
本文将围绕“solr搜索入门文档”的主题,深入探讨Solr的基本原理、搭建步骤以及使用细节。 一、Solr原理 1. Lucene基础:Solr的核心是Apache Lucene,一个强大的全文检索库。Lucene处理文本,将其分词,并构建索引...
Solr 是一个开源的全文搜索引擎...这仅仅是Solr功能的冰山一角,更深入的使用包括设置复杂的查询过滤器、优化索引性能、实现多语言支持等。随着你对Solr理解的深入,你会发现它在大数据搜索和分析领域具有巨大的潜力。
- Solrj的使用说明:介绍了如何使用SolrJ添加数据、直接添加POJO到Solr和从Solr读取数据。 - 创建查询:说明了如何创建查询并使用SolrJ进行索引的创建。 5. Solr实际应用测试报告 - 线下压力测试报告:提供了线下...
solr入门环境搭建,sorl ik分词器分词,solr数据库数据导入,solr同步等技术实现及配置.版本solr7.4.0 + ikanalyzer-solr5 + solr-dataimport-scheduler
【Solr入门配置说明】 Solr,全称为Apache Solr,是一个开源的、基于Java的企业级搜索应用服务器。它提供了一种高效、可扩展的全文检索能力,支持多种数据源,如XML、JSON等,通过HTTP接口进行通信,使得开发者能够...
一、Solr的使用入门 1. 安装与启动:首先,你需要从Apache Solr官方网站下载最新版本的Solr,解压后找到bin目录下的`solr.cmd`(Windows)或`solr`(Linux/Mac)命令行脚本,执行启动命令,这将启动一个默认的Solr...
本文将详细介绍如何进行Solr的搭建和入门。 1. **环境准备** 在开始搭建之前,确保你的系统中已经安装了Java Development Kit (JDK)。Solr运行在Java环境中,所以必须先安装JDK,且版本至少为1.8。你可以通过官方...
Solr 是一个开源的全文搜索引擎,它提供...理解Solr的核心概念,如核心、字段类型和索引,对于有效地使用和管理Solr至关重要。同时,保持对最新官方文档的了解,能够帮助你解决可能出现的问题,提升你的Solr应用能力。
4. **example 目录**:提供了一个预配置的Solr实例,用于快速入门和测试。它包括一个默认的配置集,以及一个简单的数据导入处理程序(DIH)示例,帮助开发者了解如何设置和使用Solr。 5. **docs 目录**:包含了Solr...
Solr 的官方文档对于用户学习和使用 Solr 提供了详尽的指导,内容涵盖从基础入门到高级配置的各个层面。 文档标题 "solr7官方文档" 指示了这是针对 Solr 7.x 版本的使用手册,这个版本的 Solr 是目前较为先进稳定的...