solr全文检索,建立的文件索引,检索不出正确结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr全文检索,建立的文件索引,检索不出正确结果相关的知识,希望对你有一定的参考价值。

两个字能检索出结果,两个字以上,或者有时候两个字不是一个词语也不能检索出结果,怎么回事呢

考虑分词的原因吧,在solr admin界面中的analysis看一下相同的词在index和search的时候是否一致 参考技术A 这种问题,还是在java群中问比较靠谱。 参考技术B search.isoftlink.com

Solr

1.solr是一个全文检索引擎系统,通过部署到tomcat下就可以独立运行,通过http协议对外提供全文检索服务,
    就是索引和文档的正删改查服务
2. solr直接操作索引库和文档库, 我们的业务系统中可以使用solrJ(solr的客户端,就是一堆jar包)来调用solr服务端,
    让solr服务端操作文档库和索引库,完成正删改查的任务,将结果返回给solrJ客户端,我们在业务系统中就可以,
    获取到结果然后返回给客户在浏览器中显示.

3. solrHome:solrhome就是solr最核心的目录, 一个solrhome中可以有多个solr实例
4. solrCore:一个solrCore就是一个solr实例,solr中实例与实例之间他们的索引库和文档库是相互隔离的
    每个实例对外单独的提供索引和文档的增删改查服务,默认实例叫做collection1

5. 文档和索引的增加和修改必须要有id, 主键域,没有会报错
6. 域名和类型必须先定义后使用,如果没有定义就使用会报错

7. 域的分类
  普通域:string long 等
  动态域:起到模糊匹配的效果,可以模糊匹配没有定义过的域名
      例如:xxxx这个域名没有定义,但是xxxx_s这个域名模糊匹配了*_s这个域,所以相当于xxxx_s这个域定义了
  主键域:<uniqueKey>id</uniqueKey> 一般主键域就用默认的这个就可以不需要更改或者添加
  复制域:复制域用于查询的时候从多个域中进行查询,这样可以将多个域复制到某一个统一的域中,
        然后搜索的时候从这个统一的域中进行查询,就相当于从多个域中查询了.

6.是否存储和是否索引无关, 索引后就能查询,不索引就不能根据这个域搜索,
    存储后就能取出来里面的内容,不存储就取不出这个域内容

7. 一般企业中将数据全部放入数据库中, 由于查询的时候需要使用like模糊查询,模糊查询数据库中使用的是全表扫描算法,
    这样效率低级,所以需要使用全文检索,来优化查询速度.

以上是关于solr全文检索,建立的文件索引,检索不出正确结果的主要内容,如果未能解决你的问题,请参考以下文章

2018-8-25未命名文件

lucene&solr全文检索_3查询索引

全文检索 -- Solr从概念到实战

全文检索引擎:solr lucene

Solr

solr 排序与文档分数计算