美文网首页
solr的基本练习个人作业

solr的基本练习个人作业

作者: thought_10c7 | 来源:发表于2017-06-07 16:44 被阅读0次

    0、启动solr,打开

    0.1

    配置techproducts 实例。
    首先进入目录中

    cd solr-6.3.0
    bin/start -e techproducts
    

    实际中我自己的电脑没有成功,但是小组的作业中通过使用8080端口

    -p8080
    

    可以实现。进入后的界面就是如下

    yyq@iZwz99gkz6jxne43hwkdu0Z:/usr/local/solr-6.5.1$ bin/solr start -e techproducts -        p 8080
    Solr home directory /usr/local/solr-6.5.1/example/techproducts/solr already exists.
    

    这里是启动

    Starting up Solr on port 8080 using command:
    bin/solr start -p 8080 -s "example/techproducts/solr"
    
    Waiting up to 180 seconds to see Solr running on port 8080 [\]  
    Started Solr server on port 8080 (pid=8731). Happy searching!
                                                                                                                                     
    Copying configuration to new core instance directory:
    /usr/local/solr-6.5.1/example/techproducts/solr/techproducts
    

    这里是新建一个directory目录

    Creating new core 'techproducts' using command:
    http://localhost:8080/solr/admin/cores?    action=CREATE&name=techproducts&instanceDir=techproducts
    
    {
      "responseHeader":{
        "status":0,
        "QTime":4322},
      "core":"techproducts"}
    

    核心的名字就是techproducts

    下面是构建如下的一个索引

    Indexing tech product example docs from /usr/local/solr-6.5.1/example/exampledocs
    SimplePostTool version 5.0.0
    Posting files to [base] url http://localhost:8080/solr/techproducts/update using         content-type application/xml...
    POSTing file vidcard.xml to [base]
    POSTing file solr.xml to [base]
    POSTing file monitor.xml to [base]
    POSTing file mp500.xml to [base]
    POSTing file mem.xml to [base]
    POSTing file ipod_other.xml to [base]
    POSTing file ipod_video.xml to [base]
    POSTing file manufacturers.xml to [base]
    POSTing file utf8-example.xml to [base]
    POSTing file monitor2.xml to [base]
    POSTing file gb18030-example.xml to [base]
    POSTing file money.xml to [base]
    POSTing file sd500.xml to [base]
    POSTing file hd.xml to [base]
    14 files indexed.
    COMMITting Solr index changes to http://localhost:8080/solr/techproducts/update...
    Time spent: 0:00:01.255
    
    Solr techproducts example launched successfully. Direct your Web browser to       http://localhost:8080/solr to visit the Solr Admin UI
    

    以上将example/exampledocs中的xml文件post变为索引
    已上就是启动之后ssh中的反馈结果。

    1、理解索引

    1.1 定位 techproducts 内核所在的文件目录,分析 内核所在的文件目录,分析 techproducts内核的目录结构 。

    首先要进入文件夹的位置
    cd usr/local/solr-6.5.1
    然后使用tree命令可得当前的文件夹的结构

       ├── solr.xml
        ├── techproducts
        │   ├── conf
        │   │   ├── admin-extra.html
        │   │   ├── admin-extra.menu-bottom.html
        │   │   ├── admin-extra.menu-top.html
        │   │   ├── clustering
        │   │   ├── currency.xml
        │   │   ├── elevate.xml
        │   │   ├── lang
        │   │   ├── managed-schema
        │   │   ├── mapping-FoldToASCII.txt
        │   │   ├── mapping-ISOLatin1Accent.txt
        │   │   ├── params.json
        │   │   ├── protwords.txt
        │   │   ├── _rest_managed.json
        │   │   ├── _schema_analysis_stopwords_english.json
        │   │   ├── _schema_analysis_synonyms_english.json
        │   │   ├── solrconfig.xml
        │   │   ├── spellings.txt
        │   │   ├── stopwords.txt
        │   │   ├── synonyms.txt
        │   │   ├── update-script.js
        │   │   ├── velocity
        │   │   └── xslt
        │   ├── core.properties
        │   └── data
        │       ├── index
        │       ├── snapshot_metadata
        │       └── tlog
        └── zoo.cfg
    

    分析可得
    有两大文件夹conf与data构成
    conf中主要是一些xml文件以及schema文件
    data中包含了索引文件

    1.2 定位 techproducts索引数据的文件位置
    打开index后发现里面有很多格式各异的文件
    dvm 。特定。发短信。地等等等等。这些文件构成了index

    1.3 下载索引数据到本地熟悉 Solr/ Lucene 索引 相关 的多文件结构
    下载了相关的索引文件到本地
    ├── _0.dii
    ├── _0.dim
    ├── _0.fdt
    ├── _0.fdx
    ├── _0.fnm
    ├── _0_Lucene50_0.doc
    ├── _0_Lucene50_0.pay
    ├── _0_Lucene50_0.pos
    ├── _0_Lucene50_0.tim
    ├── _0_Lucene50_0.tip
    ├── _0_Lucene54_0.dvd
    ├── _0_Lucene54_0.dvm
    ├── _0.nvd
    ├── _0.nvm
    ├── _0.si
    ├── _0.tvd
    ├── _0.tvx
    ├── segments_2
    └── write.lock

    使用luke查看数据

    捕获.GIF
    luke可以做到以下内容
    1、简单的查看,一共有32个的document,25个field。992个terms
    overview是用来进行索引的一般性查看和操作的,比如索引目名,索引文件版本等为lucence5.3。

    2、search,可以通过搜索已有的内容。来找到自己要的内容。例如
    name = book
    name=ipod
    等等


    search

    第一条的得分为0.323分是三个里面最高的一个。说明相关度最高

    1.5了解schema的作用###

    schema.xml文件现在已经变成了manage—schema文件
    这个文件现在在solr里面来说他不希望认为的修改。这是一个配置文件,在里面可以定义加入索引的数据类型等等信息。现在我们仍可以手动添加。

    1.5.1定位
    manage-schema文件位于conf中
    1.5.2分析构成

     <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
    
       <field name="pre" type="preanalyzed" indexed="true" stored="true"/>
       <field name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/>
       <field name="name" type="text_general" indexed="true" stored="true"/>
       <field name="manu" type="text_general" indexed="true" stored="true" omitNorms="true"/>
       <field name="cat" type="string" indexed="true" stored="true" multiValued="true"/>
       <field name="features" type="text_general" indexed="true" stored="true" multiValued="true"/>
       <field name="includes" type="text_general" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />
    
       <field name="weight" type="pfloat" indexed="true" stored="true"/>
       <field name="price"  type="pfloat" indexed="true" stored="true"/>
       <field name="popularity" type="pint" indexed="true" stored="true" />
       <field name="inStock" type="boolean" indexed="true" stored="true" />
    
       <field name="store" type="location" indexed="true" stored="true"/>
    

    里面类似这类文件定义了索引名字以及是否为索引

    2、掌握query查询构造####

    在这部分里面我直接运用图片的形式来展示,通过直接在admin中query左边区域中构建查询表达。结果在右边显示。当然,如果乐意的话(不嫌麻烦)也可以在url中进行查询。

    1、进行构建:成功


    捕获1.GIF

    2、进行构建:success

    捕获2.GIF

    3、在admin中进行构建:success

    捕获3.GIF

    4、这里要用到高亮的语句
    进行构建:勾选高亮选项。


    捕获4.GIF

    5、分类查找

    http://120.76.144.46:8080/solr/techproducts/select?q=cat:(price:[0 TO 300] & price:[300 TO 600]& price:[600 TO 900])&fl=id,name,price
    但有点小问题。有时间再回来吧

    6、找出电子产品多少有货无货
    找出电子产品
    直接在admin中构建

    捕获5.GIF

    在这里我们可以看到nomfound=8 说明有八个有货

    捕获.GIF

    在这里我们可以看到nomfound=4 说明有4个无货

    3、movie###

    首先先要找到film在哪儿呢
    在example中有,为了避免在小组中与其他人的创建重复
    我选择在自己的云服务器上进行创建

    首先呢我们先查看films里面的xml以及json文件
    这里就不赘述了
    正式开始
    cd solr-6.3.0
    然后

    bin/solr create -c movie -force
    

    居然出错了,然后想起来范老师把我的solr 关闭了
    打开solr

    bin/solr start  -force
    

    再来就成功了


    )V)~Y$$~)5@ACCP3AD[Q]1A.png
    bin/post -c movie example/films/films.json 
    
    捕获.GIF

    然后就有了。
    建立索引成功,可以找到索引文件

    3.6.1查找super hero

    捕2获.GIF

    然后就找到咯

    3.6.3自己编一个查询
    查一查喜欢剧片

    4、创建自己的内核,基于乐博的##

    过程我就不再赘述了
    然后建立索引

    QQ截图20170607163800.png

    这个是说明我们可以查询了

    4.5构建自定义查询####

    我们搜索了
    名字中含有 唐 这个字的模糊检索,文物等级是二级的文物。

    QQ截图20170607163611.png

    相关文章

      网友评论

          本文标题:solr的基本练习个人作业

          本文链接:https://www.haomeiwen.com/subject/yraofxtx.html