有些时候,我们需要自定义 fieldType.下面的例子就是自定义的 fieldType,<analyzer type="index"> 表示索引时怎么处理,<analyzer type="query">表示查询时怎么处理. <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100&qu…
Tokenizer Tokenizer 的工作是将文本流分解为令牌,其中每个令牌(通常)是文本中字符的子序列.分析器知道它配置的字段,但 tokenizer 不是.Tokenizers 从字符流(Reader)中读取并生成一系列令牌对象(TokenStream). 输入流中的字符可能被丢弃,如空格或其他分隔符.也可以添加或替换它们,例如将别名或缩写映射到规范化的窗体.令牌包含除文本值之外的各种元数据,例如字段中令牌出现的位置.由于 Tokenizer 可能会产生与输入文本不一致的标记,因此不应假…
对于文本,solr在建立索引和搜索的时候需要对其做一定的处理(比如英文要去掉介词.转成小写.单词原形化等,中文要恰当地要分词).这些工作,一般由Analyzers.Tokenizers.和Filter来实现.这三个东东配置在fieldType中.下面分别介绍一下 1.analyzer:告诉solr在建立索引和搜索的时候,如何处理text类型的内容,比如要不要去掉“a”.去掉介词.去掉复数,要不要全部变成小写等等……它在schema.xml文件中配置,可以直接指定一个类给它:也可以由tokeniz…
tomcat和solr在各自官网下载,版本如下: tomcat版本:8.0.24 solr版本:5.5.0 1.solr解压后,目录结构如下: 2.tomcat的webapps里新建solr目录, 把solr-5.5.0\server\solr-webapp\webapp目录下的文件全部复制进来 在WEB-INF文件下新建classes文件夹,把solr-5.5.0\server\resources\log4j.properties复制到classes文件夹里,这样才能看到solr的日志. 3.…
solr/home是solr实例化core核的依据和入口,是必不可少的配置. 1.在web.xml中设置 <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>d:/solr/solr_home</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> &l…
本文章全部内容均翻译自solr自带的配置文件. 1.Field结点说明 name: 必须的,field的名字 type:        必须的,fieldType部分所定义的type的名字 indexed:   如果想要这个字段被索引设置为true(可搜索或可排序) stored:     如果想要这个字段可以被还原,设置为true.通俗一点说,就是搜索的时候如果想要能查询出这个字段,应该设置为true. docValues: 如果这个字段应该有文档值(doc values),设置为true.文…
布署完成后,接下来要更深入的研究solr的原理和使用. 首先进入testcore这个文件夹下面,发现这个core的conf里并没有schema.xml.那么数据格式是在哪里定义的呢? 打开 solr_home/testcore/conf/solrconfig.xml,会发现里边有这样一段话. 这段话的大概意思: 如果要禁用 dynamic schema 的 rest API,可以通过使用如下配置实现:<schemaFactory class="ClassicIndexSchemaFacto…
tomcat 布署成功后,接下来就是使用了. 首先要创建一个core. 1.选择右侧菜单, Core Admin -> Add Core. 注意:name自己定义,instanceDir要填写上一篇文章中第5步中创建的目录名 2.创建成功后左侧操作面板如下图 3.这时可以进行搜索了,选择 Query,查询条件使用默认的 *:*,点击 Execute Query.这时碰到一个问题,查询结果并没有显示出来. 4.用FireBug查看,发现错误. 5.把错误地址复制到浏览器地址栏,直接访问,还是不行,…
介绍:ElasticSearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elasticsearch 是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. Elasticsearch中,内置了很多分词器(analyzers).下面来进行比较下系统默认分词器和常用的中文分词器之间的区别. 系统默认分词器:1.…
首先,不知道大家在前面的例子中没有试着搜索文本串,就是在第二节,我们添加了很多文档.如果字段值是一个文本.你如果只搜索这个字段的某个单词,是不是发现搜不到? 这就是因为我们没有配置Analyzer,因此在搜索的时候会“全匹配”.可以从直观感觉上理解为SQL的  like和= 的区别. 通过前面这段引文,我们就能知道:Analyzer就是分析我们的文本的. 一般来说:solr.TextField类型的字段才需要分析器. 最简单的配置分析器的如下:   <fieldType name="nam…