特殊字符搜索

以下字符在 Solr 中有特殊含义:

+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \

需要在关键字中使用这些特殊符号时, magasin uggs pas cher en ligne 需要经过转义, bottes ugg 使用 “\” 来转义这些字符。 bottes timberland 如搜索 :(1+1):2 时, moncler pas cher 这里面有三个特殊字符, puma chaussure 2018 ( + ) :,

在 tomcat 中运行 solr

基于 solr 进行开发, magasin uggs pas cher 少不了要在 tomcat 中运行 solr,这里以 windows + tomcat 6.0 + solr 3.5 为基础讲解在 tomcat 中部署 solr 的过程。

首先在 solr 的发行包中 apache-solr-3.5.0\dist 下找到 apache-solr-3.5.0.war,将其复制到 tomcat/webapp 下,启动 tomcat , soldes puma tomcat 会将 war 包解压开,然后会报一个错误,说在 tomcat/bin 目录下找不到 solr/home , moncler sitemap 现在可以先关闭 tomcat , timberland 找到 apache-solr-3.5.0 文件夹(就是war包被 tomcat 解压出来的),打开 Tomcat 6.0\webapps\apache-solr-3.5.0\WEB-INF 下的 web.xml, botte ugg solde
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
的注释去掉,将 /put/your/solr/home/here 的值改成 solr 配置文件所在的位置(solr/home),如:D:/apache-solr-3.5.0/example/solr。保存文件再运行 tomcat,正常情况下,此次启动不会报错了,启动完成后,在浏览器中输入

http://localhost:81/apache-solr-3.5.0/admin/

就可以看到 solr 的管理界面了,此时 solr 3.5 在 tomcat 中部署成功了。

至于 solr/home 的配置,除了像本例在配置在 web.xml 中,还可以配置在系统环境变量中(像 java_home 类似的配法),也可以 tomcat 启动命令行中增加

JAVA_OPTS=”-Dsolr.solr.home=/Users/jonathan/Desktop/solr”

阿丁比较推荐的做法是按本例中的方式,配置在 web.xml 中,这样对tomcat、操作系统影响最少,换一个 tomcat 只需将修改自己本身的 web.xml 就行。

布尔操作符(Boolean operators)

Solr 允许在搜索条件中使用 布尔操作符, timberland 以下是默认查询解析器支持的布尔操作符
AND:
可以简写为 && , Timberland Femme 表示需要在这个操作符的两边的条件都满足
NOT
可以简写为 !, timberland femme 表示不符合这个条件的
OR
可以简写成||, moncler pas cher 表示操作符两边的条件满足任意一个即可
+
表示需要满足这个条件
-
表示排除这个条件
OR 是默认的条件连接符, bottes ugg soldes OR 搜索的结果是两个条件的结果的联合。 moncler en ligne 在 schema.xml 中可以指定默认的布尔操作符。

Apache Solr 3.6.1 发布

改版主要是跟随 Lucene 升级,

动态字段

正常情况下, ugg australia pas cher femme 需要事先把知道的字段定义在 schema.xml 中, ugg australia 当有不确定的字段时,这时可以使用动态字段。 soldes puma chaussure

这里是一个动态字段定义的示例:
<dynamicField name="*_s" type="string" indexed="true" stored="true"/>
这样,送过来的索引数据中,如果有以 _s 结尾的字段的值都都会被按照上述的索引方式进行索引,如字段名称为title_s,content_s。 Bottes UGG Pas Cher France En Ligne
在匹配过程, moncler 2018 如果动态字段和静态字段都符合,会优先匹配静态字段。 Baskets homme Puma 另外动态字段的仅支持 * 这一通配符,这个通配符仅能位于开头或结尾。

CoreAdminHandler 之 UNLOAD

UNLOAD 请求会将一个 core 从 solr 中移除。 puma 2018 pas cher 在移除过程, botte ugg solde 正在执行的请求将继续, soldes puma chaussure 但不会接受新的请求。 chaussure timberland homme

http://localhost:8983/solr/admin/cores?action=UNLOAD&core=core0

UNLOAD 请求必须制定一个参数:

core:
需要被移除的 core 的名称, ugg pas cher femme 如果 <solr> 的 persistent 属性为 true 时, puma pas cher 该 <core> 元素将会从 solr.xml 中移除。

CoreAdminHandler 之 SWAP

SWAP 该命令可以切换两个存在的 core 的名称。 timberland pas cher 可以用于将一个新建或已有的 core 替换到目前正在服务的 core, timberland chaussures 比如原有的 core 正在运行, ugg outlet france 需要更新,可以新建一个 core, moncler Doudounes 启动新 core 后, bottes timberland 将新 core 和正在运行的 core 的名称做个切换, basket timberland 这样更新就无缝能生效。

启用 solr suggest

suggest 是搜索引擎一个方便的功能, moncler paris 对数据的关键字进行预测和建议,减少了用户的输入, ugg outlet france 大体的效果如下:

suggest幸运的是 solr 也提供了类似的功能,在该功能的基础上,配合 jQuery 或 kissy 的自动完成组件就可以实现类似上面的功能。
启动该功能的过程大体如下:
suggest 的功能依赖拼写组件,solr_home/data 目录下会有一个 spellchecker 目录, ugg australia pas cher femme 该目录用于存放 suggest 和 拼写检查的索引库, Timberland Femme Pas Cher 所以要先配置 spell 功能, timberland 配置如下:
 <searchComponent name="spellcheck" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType">textSpell</str> <lst name="spellchecker"> <str name="name">default</str> <str name="field">title</str> <str name="buildOnCommit">true</str> <str name="spellcheckIndexDir">spellchecker</str> </lst> </searchComponent>
上述中的 field 用于指定主索引库中用于 spellchecker 索引的数据从主索引库的那个字段来获取。buildOnCommit 该属性为 true 时,当主索引库有提交指令时,将会自动把指定字段的内容送到 spellchecker 索引库,作为拼写检查和 suggest 使用。 moncler Doudounes
接下来配置 suggest 的处理组件和请求类,如下所示:
<searchComponent class="solr.SpellCheckComponent" name="suggest"> <lst name="spellchecker"> <str name="name">suggest</str> <str name="classname">org.apache.solr.spelling.suggest.Suggester</str> <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookupFactory</str> <float name="threshold">0.005</float> <str name="buildOnCommit">true</str> </lst> </searchComponent> <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest"> <lst name="defaults"> <str name="spellcheck">true</str> <str name="spellcheck.dictionary">suggest</str> <str name="spellcheck.onlyMorePopular">true</str> <str name="spellcheck.count">5</str> <str name="spellcheck.collate">true</str> </lst> <arr name="components"> <str>suggest</str> </arr> </requestHandler>
这时候重新提交数据, puma 2018 pas cher 会发现原先为空的 spellchecker 为空的索引库中有数据了,

指定字段搜索

数据在 Solr 中是已字段形式存储,这些字段在 schema.xml 文件中。 bottes ugg soldes 搜索时,可以利用指定字段进行精确搜索。 chaussure timberland 在 schema.xml 中定义了一个默认搜索字段,如果在搜索时,没有指定字段,solr 或在默认的字段里进行搜索。 chaussures puma pas cher 另外,也可以指定其他字段其他字段或者多个字段进行搜索。 ugg enfant
指定字段搜索语法是这样的:

字段名称:关键字

假设一个索引库有两个字段,title和text,同时 text 是默认字段,如果打算搜索一个文档,title中包含:The Right Way ,并且text字段包含:don’t go this way。 ugg australia pas cher femme 这时可以使用以下搜索:
title:”The Right Way” AND text:go title:”Do it right” AND go

第二个中,and 后面的条件中没有指定字段,因为text字段是默认搜索字段。

分析阶段

在两个时间需要用到分析。 Achat chaussure Puma 在索引时,当一个字段被创建时,分析这个字段得到的 token stream 将被加入索引库,并且定义出这个字段的 terms(包括位置、大小等等)。 magasin uggs pas cher en ligne 在查询时,搜索词将被分析,并且去字段的索引中匹配相应的 terms。 timberland

在许多情况下,同样的分析会被应用在两个阶段,比如精准搜索,需要索引和搜索时采用同样的分析策略。 ugg pas cher 在其他情况下,索引和搜索所采用的策略会有所不同。 Timberland Femme Pas Cher
如果字段类型只是简单定义了 <analyzer> ,这样相同的分析策略会被应用到索引和搜索阶段。 timberland chaussures 如果打算搜索和索引采用不同的分析策略,字段类型定义中需要包含两个 <analyzer> ,如下所示:
<br /> &lt;fieldType name=&quot;nametext&quot;&gt;<br /> &lt;analyzer *type=&quot;index&quot;{*}&gt;<br /> &lt;tokenizer/&gt;<br /> &lt;filter/&gt;<br /> &lt;filter words=&quot;keepwords.txt&quot;/&gt;<br /> &lt;filter synonyms=&quot;syns.txt&quot;/&gt;<br /> &lt;/analyzer&gt;<br /> &lt;analyzer *type=&quot;query&quot;{*}&gt;<br /> &lt;tokenizer/&gt;<br /> &lt;filter/&gt;<br /> &lt;/analyzer&gt;<br /> &lt;/fieldType&gt;<br /> 

在上面例子中,在索引时,文本内容将被转成小写,不存在keepwords.txt中的文本将被丢弃,剩下的将被替换syns.txt中的同义词。
在搜索时,会将搜索词转成小写,索引阶段的过滤和映射步骤搜索时没有定义,就不会发生。

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress · 闽ICP备18020075号