配置文件

一. solr配置

1. data-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/redseft" user="root" password="521" batchSize="-1" />
    <document>
        <entity name="game" pk="gameId" dataSource="source1" query="select *,'GAME' as type from game where del_flag ='0'"
            deltaImportQuery="select *,'GAME' as type from game where id='${dih.delta.gameId}'"
            deltaQuery="SELECT id as gameId FROM game where create_time &gt; '${dih.last_index_time}'">
            
            
            <field column="id" name="gameId" />
            <field column="title" name="title" />
            <field column="status" name="status" />
            <field column="area_code" name="area_code" />
            <field column="max_people" name="max_people" />
            <field column="pass" name="pass" />
            <field column="apply_start_time" name="apply_start_time" />
            <field column="apply_end_time" name="apply_end_time" />
            <field column="game_start_time" name="game_start_time" />
            <field column="game_end_time" name="game_end_time" />
            <field column="description" name="description" />
            <field column="items" name="items" />
            <field column="is_insurance" name="is_insurance" />
            <field column="insurance_link" name="insurance_link" />
            <field column="sex_limit" name="sex_limit" />
            <field column="location" name="location" />
            <field column="preview_img" name="preview_img" />
            <field column="show_img" name="show_img" />
            <field column="create_time" name="create_time" dateTimeFormat="yyyy-MM-dd HH:mm" />
            <field column="hot_no" name="hot_no" />
            <field column="type" name="type" />
            <field column="update_time" name="type" />
        </entity>

        <entity name="news" pk="newsId" dataSource="source1" query="select *,'NEWS' as type from news where del_flag ='0'"
            deltaImportQuery="select *,'NEWS' as type from news where id='${dih.delta.newsId}'"
            deltaQuery="SELECT id as newsId FROM news where create_time &gt; '${dih.last_index_time}'">
            
            <field column="id" name="newsId" />
            <field column="tags" name="tags" />
            <field column="title" name="title" />
            <field column="summary" name="summary" />
            <field column="show_img" name="show_img" />
            <field column="type" name="type" />
            <field column="create_time" name="create_time" dateTimeFormat="yyyy-MM-dd HH:mm" />
        </entity>

    </document>
</dataConfig>    

2. schema
<!-- ik分词器 -->
    <fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index">
            <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
             <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
             <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>



     <field name="gameId" type="string" indexed="true" stored="true" />
     <field name="title" type="text_ik" indexed="true" stored="true"  />
     <field name="status" type="string" indexed="true" stored="true" />
     <field name="area_code" type="string" indexed="true" stored="true" />
     <!-- <field name="max_people" type="int" indexed="true" stored="true" /> -->
     <!-- <field name="pass" type="int" indexed="true" stored="true" /> -->
     <!-- <field name="apply_start_time" type="date" indexed="true" stored="true" />
     <field name="apply_end_time" type="string" indexed="true" stored="true" />
     <field name="game_start_time" type="string" indexed="true" stored="true" />
     <field name="game_end_time" type="string" indexed="true" stored="true" /> -->
     <field name="description" type="text_ik" indexed="true" stored="true"  />
     <field name="items" type="string" indexed="true" stored="true" />
     <field name="location" type="string" indexed="true" stored="true" />
     <field name="show_img" type="string" indexed="true" stored="true" />
     <field name="create_time" type="string" indexed="true" stored="true" />
     <!-- <field name="hot_no" type="int" indexed="true" stored="true" /> -->
    <field name="newsId" type="string" indexed="true" stored="true" />
    <field name="tags" type="text_ik" indexed="true" stored="true" />
    <field name="summary" type="text_ik" indexed="true" stored="true" />

    <field name="type" type="string" indexed="true" stored="true" />
    <field name="showSearch" type="text_ik" indexed="true" stored="true" multiValued="true" />

    

     <copyField source="tags" dest="showSearch"/>
     <copyField source="title" dest="showSearch"/>
     <copyField source="description" dest="showSearch"/>
     <copyField source="summary" dest="showSearch"/>

二. nginx配置

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    gzip_comp_level  5;
    gzip_min_length  1024;
    gzip_types   text/plain application/x-javascript text/css application/xml text/javascript  image/jpeg image/gif image/png;
    server {
        # 默认电脑端访问
        listen       80;
        server_name  ff.com www.ff.com;   #localhost;
        #access_log  logs/host.access.log  main;
        location / {
            root   /usr/local/project/static/pc;
            index  index.html ;
        }
        # 根据header判断是否是手机端用户  如果是手机端端就跳转m站
        if ( $http_user_agent ~* "(Android|iPhone|Windows Phone|UC|Kindle)" ){
            rewrite ^/(.*)$  http://m.ff.com$uri redirect;
        }
    }
    # 手机端访问m站
    server {
        listen       80;
        server_name  m.ff.com;
        location / {
            root   /usr/local/project/static/phone;
            # try_files $uri $uri/ /index.html last;
            index  index.html;
        }
    }
    # 后端接口 二级域名 跳转到 springboot占用的8888端口
    server {
        listen       80;
        server_name  api.ff.com;
        location / {
            proxy_pass   http://localhost:8888;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $http_host;
        }
    }

    # 后台管理系统
    server {
        listen       8800;
        server_name  localhost;
        location / {
            root   /usr/local/project/static/admin;
            try_files $uri $uri/ /index.html last;
            index  index.html;
        }
    }


}

一. elasticsearch配置

从数据库获取父子结构的数据

  1. 配置es
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.port: 9200
transport.tcp.port: 9300
transport.tcp.compress: true
  1. 配置logstash
input {
    jdbc {
      jdbc_connection_string => "jdbc:mysql://45.96.132.27:3306/bat_test?zeroDateTimeBehavior=convertToNull"
      jdbc_user => "root"
      jdbc_password => "ahahaha2"
      jdbc_driver_library => "../config/mysql-connector-java-5.1.41.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement_filepath => "../config/getOrder.sql"
      schedule => "*/5 * * * *"
      type => "jdbc_order"
      add_field => { "join_field" => "order"}
      
    }
    jdbc {
      jdbc_connection_string => "jdbc:mysql://45.96.132.27:3306/bat_test?zeroDateTimeBehavior=convertToNull"
      jdbc_user => "root"
      jdbc_password => "ahahaha2"
      jdbc_driver_library => "../config/mysql-connector-java-5.1.41.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement_filepath => "../config/getProduct.sql"
      schedule => "*/5 * * * *"
      type => "jdbc_product"
      add_field => {
                "[join_field][name]" => "product"
                "[join_field][parent]" => "%{order_id}"
            }
    }
    
}
output {
 stdout {
        codec => json_lines
    }
    if[type] == "jdbc_order"{
        elasticsearch {
        hosts  => "localhost:9200"
        index => "order_product_index"
        document_type => "order"
        document_id => "%{order_id}"
        }
    }
    if[type] == "jdbc_product"{
        elasticsearch {
        hosts  => "localhost:9200"
        index => "order_product_index"
        document_type => "order"
        document_id => "%{id}"
        routing => "%{order_id}"
        }
    }
}
  1. 创建索引
put  localhost:9200/order_product_index/ 
{
 "mappings": {
   "order": {
     "properties": {
       "join_field": { 
         "type": "join",
         "relations": {
           "order": "product" 
         }
       }
     }
   }
 }
}
  1. 搜索:查询父文档,并显示所有子文档
get localhost:9200/order_product_index/order/_search
{
    "query": {
        "has_child": {
            "type": "product",
            "query": {
                "match_all": {}
            },
            "inner_hits": {}
        }
    }
}
  1. 搜索:根据父文档查询,并显示所有子文档
{
    "query": {
        "bool": {
            "filter": 
             
                {
                    "bool":{
                        "should":[
                            {
                                "regexp": { "creatorname": ".*冯帆海涛.*"}
                            },
                            {
                                "regexp": { "order_id": ".*100000156.*"}
                            }
                        ]
                
                    }
                }
            ,
            "must":[
                {
                    "has_child": {
                        "type": "product",
                        "query": {
                            "match_all": {}
                        },
                        "inner_hits": {"size": 10}
                    }
                }
            ]
        }
        
        
        
    },
    "from" : 0,
    "size" : 10,
    "sort":{"create_time":{"order":"desc"}}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342