日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。...

發布時間:2025/3/20 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1?? 什么是SolrCloud

  SolrCloud(solr 云)是Solr提供的分布式搜索方案,當你需要大規模,容錯,分布式索引和檢索能力時使用 SolrCloud。當一個系統的索引數據量少的時候是不需要使用SolrCloud的,當索引量很大,搜索請求并發很高,這時需要使  用SolrCloud來滿足這些需求。

  SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作為集群的配置信息中心。

  它有幾個特色功能:

  1)集中式的配置信息

  2)自動容錯

  3)近實時搜索

  4)查詢時自動負載均衡

1.1? Zookeeper是個什么玩意?

  顧名思義zookeeper就是動物園管理員,他是用來管hadoop(大象)、Hive(蜜蜂)、pig(小豬)的管理員, Apache Hbase和 Apache Solr 的分布式集群都用到了zookeeper;Zookeeper:是一個分布式的、開源的程序協調服務,是hadoop項目下的一個子項目。

1.2 ? Zookeeper可以干哪些事情

?

  1、配置管理

  在我們的應用中除了代碼外,還有一些就是各種配置。比如數據庫連接等。一般我們都是使用配置文件的方式,在代碼中引入這些配置文件。但是當我們只有一種配置,只有一臺服務器,并且不經常修改的時候,使用配置文件是一個很好的做法,但是如果我們配置非常多,有很多服務器都需要這個配置,而且還可能是動態的話使用配置文件就不是個好主意了。這個時候往往需要尋找一種集中管理配置的方法,我們在這個集中的地方修改了配置,所有對這個配置感興趣的都可以獲得變更。比如我們可以把配置放在數據庫里,然后所有需要配置的服務都去這個數據庫讀取配置。但是,因為很多服務的正常運行都非常依賴這個配置,所以需要這個集中提供配置服務的服務具備很高的可靠性。一般我們可以用一個集群來提供這個配置服務,但是用集群提升可靠性,那如何保證配置在集群中的一致性呢? 這個時候就需要使用一種實現了一致性協議的服務了。Zookeeper就是這種服務,它使用Zab這種一致性協議來提供一致性。現在有很多開源項目使用Zookeeper來維護配置,比如在HBase中,客戶端就是連接一個Zookeeper,獲得必要的HBase集群的配置信息,然后才可以進一步操作。還有在開源的消息隊列Kafka中,也使用Zookeeper來維護broker的信息。在Alibaba開源的SOA框架Dubbo中也廣泛的使用Zookeeper管理一些配置來實現服務治理。

  2、名字服務

  名字服務這個就很好理解了。比如為了通過網絡訪問一個系統,我們得知道對方的IP地址,但是IP地址對人非常不友好,這個時候我們就需要使用域名來訪問。但是計算機是不能是別域名的。怎么辦呢?如果我們每臺機器里都備有一份域名到IP地址的映射,這個倒是能解決一部分問題,但是如果域名對應的IP發生變化了又該怎么辦呢?于是我們有了DNS這個東西。我們只需要訪問一個大家熟知的(known)的點,它就會告訴你這個域名對應的IP是什么。在我們的應用中也會存在很多這類問題,特別是在我們的服務特別多的時候,如果我們在本地保存服務的地址的時候將非常不方便,但是如果我們只需要訪問一個大家都熟知的訪問點,這里提供統一的入口,那么維護起來將方便得多了。

  3、分布式鎖

  其實在第一篇文章中已經介紹了Zookeeper是一個分布式協調服務。這樣我們就可以利用Zookeeper來協調多個分布式進程之間的活動。比如在一個分布式環境中,為了提高可靠性,我們的集群的每臺服務器上都部署著同樣的服務。但是,一件事情如果集群中的每個服務器都進行的話,那相互之間就要協調,編程起來將非常復雜。而如果我們只讓一個服務進行操作,那又存在單點。通常還有一種做法就是使用分布式鎖,在某個時刻只讓一個服務去干活,當這臺服務出問題的時候鎖釋放,立即fail over到另外的服務。這在很多分布式系統中都是這么做,這種設計有一個更好聽的名字叫LeaderElection(leader選舉)。比如HBase的Master就是采用這種機制。但要注意的是分布式鎖跟同一個進程的鎖還是有區別的,所以使用的時候要比同一個進程里的鎖更謹慎的使用。

  4、集群管理

  在分布式的集群中,經常會由于各種原因,比如硬件故障,軟件故障,網絡問題,有些節點會進進出出。有新的節點加入進來,也有老的節點退出集群。這個時候,集群中其他機器需要感知到這種變化,然后根據這種變化做出對應的決策。比如我們是一個分布式存儲系統,有一個中央控制節點負責存儲的分配,當有新的存儲進來的時候我們要根據現在集群目前的狀態來分配存儲節點。這個時候我們就需要動態感知到集群目前的狀態。還有,比如一個分布式的SOA架構中,服務是一個集群提供的,當消費者訪問某個服務時,就需要采用某種機制發現現在有哪些節點可以提供該服務(這也稱之為服務發現,比如Alibaba開源的SOA框架Dubbo就采用了Zookeeper作為服務發現的底層機制)。還有開源的Kafka隊列就采用了Zookeeper作為Cosnumer的上下線管理。

2?? Solr集群的結構


3?? Solr集群的搭建

  本教程的這套安裝是單機版的安裝,所以采用偽集群的方式進行安裝,如果是真正的生產環境,將偽集群的ip改下就可以了,步驟是一樣的。

  SolrCloud結構圖如下:

?

  需要三個zookeeper節點

四個solr節點

4?? Zookeeper集群的搭建

4.1?? 軟件環境

三個zookeeper實例。Zookeeper也是java開發的所以需要安裝jdk。

1、Linux系統

2、Jdk環境。

3、Zookeeper。

?

服務器及軟件信息信息

1

192.168.106.80

服務器上的位置:/usr/local/apache-tomcat-7.0.73

服務器ip和端口號:192.168.106.80:8080

JDK-Version: 1.7.0_79

Zookeeper: /home/tuzq/software/zookeeper

2

192.168.106.81

服務器上的位置:/usr/local/apache-tomcat-7.0.73

服務器ip和端口號:192.168.106.81:8080

JDK-Version: 1.7.0_79

Zookeeper: /home/tuzq/software/zookeeper

3

192.168.106.82

服務器上的位置:/usr/local/apache-tomcat-7.0.73

服務器ip和端口號:192.168.106.82:8080

JDK-Version: 1.7.0_79

Zookeeper: /home/tuzq/software/zookeeper

4

192.168.106.83

服務器上的位置:/usr/local/apache-tomcat-8.5.12

服務器ip和端口號:192.168.106.83:8080

JDK-Version: 1.7.0_79

  使用偽分布式實現solr集群。需要三個zookeeper實例,4個tomcat實例,可以在一臺虛擬機上模擬。建議虛擬機1G以上內存。

其中,192.168.106.83服務器上的tomcat是8.5的,當然也可以從其它服務器上拷貝一個完整的過來,使用命令如下:

[root@hadoop3 local]# ls

apache-tomcat-7.0.73? bin? etc? games? include? java? lib? lib64? libexec? redis? sbin? share? solrcloud? src

[root@hadoop3 local]# pwd

/usr/local

##下面的意思是從當前的/usr/local中將apache-tomcat-7.0.73拷貝到192.168.106.83root用戶下的/usr/local目錄下。

[root@hadoop3 local]# scp -r apache-tomcat-7.0.73 root@192.168.106.83:/usr/local/

The authenticity of host '192.168.106.83 (192.168.106.83)' can't be established.

RSA key fingerprint is dc:55:2c:80:6a:9e:3d:a5:56:d7:0d:41:ba:d2:56:3c.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.106.83' (RSA) to the list of known hosts.

root@192.168.106.83's password:

拷貝完后,進入83的/usr/local下查看內容

[root@localhost local]# pwd

/usr/local

[root@localhost local]# ls

apache-tomcat-7.0.73? apache-tomcat-8.5.12? bin? etc? games? include? jdk1.8.0_73? lib? lib64? libexec? sbin? share? solrcloud? src

[root@localhost local]#

?

4.2 ? Zookeeper的安裝步驟

??? 關于Zookeeper的集群安裝配置參考:http://blog.csdn.net/tototuzuoquan/article/details/54003140

5?? Solr實例的搭建

第一步:在4臺服務器上分別安裝tomcat,具體的軟件安信息參考上面的4.1章節。

第二步:將solr-4.10.3.tgz.tgz分別上傳到/home/tuzq/software下。

效果圖如下:


解壓solr-4.10.3.tar.gz壓縮包。

cd /home/tuzq/software

tar –zxvf solr-4.10.3.tgz.tgz

解壓命令執行完成之后執行ls命令,當前所在目錄下多了一個solr-4.10.3

[root@localhost software]# ls

apache-tomcat-8.5.12.tar.gz? jdk-8u73-linux-x64.tar.gz ?solr-4.10.3? solr-4.10.3.tgz.tgz

從壓縮包中復制solr.war到tomcat。

其中192.168.106.80、192.168.106.81、192.168.106.82,192.168.106.83這三臺服務器執行的命令如下:

[root@hadoop3 software]# cd /home/tuzq/software/solr-4.10.3/example/webapps

[root@hadoop3 webapps]# ls

solr.war

[root@hadoop3 webapps]#cp -R solr.war /usr/local/apache-tomcat-7.0.73/webapps

[root@hadoop3 webapps]# cd /usr/local/apache-tomcat-7.0.73/webapps

[root@hadoop3 webapps]# ls

docs? examples? host-manager? manager? ROOT? solr.war

??? ??創建/usr/local/solrcloud這個文件夾,并將/home/tuzq/software/solr-4.10.3/example的solr文件拷貝到/usr/local/solrcloud,并將solr名稱改成solrhome

[root@localhost local] cd /usr/local

[root@localhost local] mkdir solrcloud

?

拷貝solr,并改變solr的名稱

[root@hadoop1 example]# cd /home/tuzq/software/solr-4.10.3/example

[root@hadoop1 example]# ls

contexts example-DIH example-schemaless logs README.txt scripts solr-webapp? webapps?? etc? exampledocs? lib? ?multicore? resources? ?solr ????start.jar

[root@hadoop1 example]# cp -R solr /usr/local/solrcloud

[root@localhost example]# cd /usr/local/solrcloud

[root@localhost solrcloud]# ls

solr

[root@localhost solrcloud]#mv solr solrhome

[root@localhost solrcloud]# ls

solrhome

[root@localhost solrcloud]#

???? 修改solrhome下的solr.xml

[root@localhost solrcloud]# cd solrhome

[root@localhost solrhome]# ls

bin? collection1? README.txt? solr.xml? zoo.cfg

[root@localhost solrhome]# pwd

/usr/local/solrcloud/solrhome

192.168.106.80服務器上的配置修改如下(其中下面紅色部分表示的tomcat所在的服務器的ip和端口號):

<solr>

?

? <solrcloud>

??? <str name="host">${host:192.168.106.80}</str>

??? <int name="hostPort">${jetty.port:8080}</int>

??? <str name="hostContext">${hostContext:solr}</str>

??? <int name="zkClientTimeout">${zkClientTimeout:30000}</int>

??? <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>

? </solrcloud>

?

? <!—下面的配置暫時不動-->

? <shardHandlerFactory name="shardHandlerFactory"

??? class="HttpShardHandlerFactory">

??? <int name="socketTimeout">${socketTimeout:0}</int>

??? <int name="connTimeout">${connTimeout:0}</int>

? </shardHandlerFactory>

?

</solr>

??? 192.168.106.81服務器上的配置修改如下(其中下面紅色部分表示的tomcat所在的服務器的ip和端口號):

<solr>

?

? <solrcloud>

??? <str name="host">${host:192.168.106.81}</str>

??? <int name="hostPort">${jetty.port:8080}</int>

? ??<str name="hostContext">${hostContext:solr}</str>

??? <int name="zkClientTimeout">${zkClientTimeout:30000}</int>

??? <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>

? </solrcloud>

?

? <!—下面的配置暫時不動-->

? <shardHandlerFactory name="shardHandlerFactory"

??? class="HttpShardHandlerFactory">

??? <int name="socketTimeout">${socketTimeout:0}</int>

??? <int name="connTimeout">${connTimeout:0}</int>

? </shardHandlerFactory>

?

</solr>

???? 192.168.106.82服務器上的配置修改如下(其中下面紅色部分表示的tomcat所在的服務器的ip和端口號):

<solr>

?

? <solrcloud>

??? <str name="host">${host:192.168.106.82}</str>

??? <int name="hostPort">${jetty.port:8080}</int>

??? <str name="hostContext">${hostContext:solr}</str>

??? <int name="zkClientTimeout">${zkClientTimeout:30000}</int>

??? <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>

? </solrcloud>

?

? <!—下面的配置暫時不動-->

? <shardHandlerFactory name="shardHandlerFactory"

??? class="HttpShardHandlerFactory">

??? <int name="socketTimeout">${socketTimeout:0}</int>

??? <int name="connTimeout">${connTimeout:0}</int>

? </shardHandlerFactory>

?

</solr>

192.168.106.83服務器上的配置修改如下(其中下面紅色部分表示的tomcat所在的服務器的ip和端口號):

<solr>

?

? <solrcloud>

??? <str name="host">${host:192.168.106.83}</str>

??? <int name="hostPort">${jetty.port:8080}</int>

??? <str name="hostContext">${hostContext:solr}</str>

??? <int name="zkClientTimeout">${zkClientTimeout:30000}</int>

??? <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>

? </solrcloud>

?

? <!—下面的配置暫時不動-->

? <shardHandlerFactory name="shardHandlerFactory"

??? class="HttpShardHandlerFactory">

??? <int name="socketTimeout">${socketTimeout:0}</int>

??? <int name="connTimeout">${connTimeout:0}</int>

? </shardHandlerFactory>

?

</solr>

第三步:重新啟動tomcat(192.168.106.81~83四臺都重啟,以重啟81為例),解壓war包。

[root@hadoop1 bin] cd /usr/local/apache-tomcat-7.0.73/bin

[root@hadoop1 bin]# ./shutdown.sh

[root@hadoop1 bin]# ./startup.sh

#通過下面的命令查看tomcat啟動情況

[root@hadoop1 bin]# ps -ef | grep tomcat | grep -v grep

#進入webapp目錄下,查看solr.war的解壓情況

[root@hadoop1 bin] cd /usr/local/apache-tomcat-7.0.73/webapps

[root@hadoop1 webapps]# ls

docs? examples? host-manager? manager? ROOT? solr? solr.war

注意:要先停掉tomcat,然后再刪除這個solr.war

[root@hadoop1 bin] cd /usr/local/apache-tomcat-7.0.73/bin

[root@hadoop1 bin]# ./shutdown.sh

[root@hadoop1 bin] cd /usr/local/apache-tomcat-7.0.73/webapps

[root@hadoop1 webapps]# rm -rf solr.war

[root@hadoop1 webapps]# ls

docs? examples? host-manager? manager? ROOT? solr

#重啟一下tomcat.

[root@hadoop1 bin] cd /usr/local/apache-tomcat-7.0.73/bin

[root@hadoop1 bin]# ./startup.sh

把solr-4.10.3目錄下example目錄下的關于日志相關的jar包添加到solr工程中。

#添加擴展依賴包(日志包)

[root@hadoop3 ext]# cd /home/tuzq/software/solr-4.10.3/example/lib/ext

[root@hadoop3 ext]# ls

jcl-over-slf4j-1.7.6.jar? jul-to-slf4j-1.7.6.jar? log4j-1.2.17.jar? slf4j-api-1.7.6.jar ?slf4j-log4j12-1.7.6.jar

?[root@hadoop3 ext] cp -R * /usr/local/apache-tomcat-7.0.73/webapps/solr/WEB-INF/lib/

cd solr-4.10.3

#在WEB-INFO下創建一個classes目錄

cd /usr/local/apache-tomcat-7.0.73/webapps/solr/WEB-INF

mkdir classes

?

#將日志文件拷貝到classes目錄下

cp -r /home/tuzq/software/solr-4.10.3/example/resources/log4j.properties /usr/local/apache-tomcat-7.0.73/webapps/solr/WEB-INF/classes

?

第四步:創建solrhome。修改web.xml指定solrhome的位置。

cd /usr/local/apache-tomcat-7.0.73/webapps/solr/WEB-INF

vim web.xml

<env-entry>

<env-entry-name>solr/home</env-entry-name>

<env-entry-value>/usr/local/solrcloud/solrhome</env-entry-value>

<env-entry-type>java.lang.String</env-entry-type>

</env-entry>


?

?

其它solr相關的配置參考:http://blog.csdn.net/tototuzuoquan/article/details/61446788

?

6?? solr集群的搭建

6.1?? 第一步

把solrhome中的配置文件上傳到zookeeper集群。使用zookeeper的客戶端上傳。

客戶端命令位置:/home/tuzq/software/solr-4.10.3/example/scripts/cloud-scripts

??? 使用zookeeper統一管理配置文件。需要把solrhome下的collection/的conf文件上傳至zookeeper

執行下邊的命令將/usr/local/solrcloud/solrhome/collection1/conf下的配置文件上傳到zookeeper(此命令為單條命令,雖然很長。此命令在solr-4.10.3/example/scripts/cloud-scripts/目錄下:

./zkcli.sh -zkhost 192.168.106.80:2181,192.168.106.81:2181,192.168.106.82:2181 -cmd upconfig -confdir /usr/local/solrcloud/solrhome/collection1/conf -confname myconf

?紅色字體部分的ip表示zookeeper集群的ip地址以及對應的端口。

?

查看配置文件是否上傳成功:

[root@bogon bin]# cd /home/tuzq/software/zookeeper/bin

[root@bogon bin]# ./zkCli.sh

Connecting to localhost:2181

?[zk: localhost:2181(CONNECTED) 8] ls /

[configs, zookeeper, myboys, mygirls]

[zk: localhost:2181(CONNECTED) 1] ls /configs

[myconf]

?[zk: localhost:2181(CONNECTED) 13] ls /configs/myconf

[currency.xml, mapping-FoldToASCII.txt,protwords.txt, scripts.conf, synonyms.txt, stopwords.txt, velocity,_schema_analysis_synonyms_english.json, admin-extra.html, update-script.js,_schema_analysis_stopwords_english.json, solrconfig.xml,admin-extra.menu-top.html, elevate.xml, schema.xml, clustering,mapping-ISOLatin1Accent.txt, spellings.txt, xslt, _rest_managed.json, lang,admin-extra.menu-bottom.html]

[zk: localhost:2181(CONNECTED) 14]

6.2 ? 第三步

修改每一臺solr的tomcat 的 bin目錄下catalina.sh文件中加入DzkHost指定zookeeper服務器地址:

[root@localhost bin]#cd /usr/local/apache-tomcat-7.0.73/bin

[root@localhost bin]#vim catalina.sh

JAVA_OPTS="-DzkHost=192.168.106.80:2181,192.168.106.81:2181,192.168.106.82:2181" ? ? ? ?

紅色字體的ip表示zookeeper集群的ip以及端口號(注意:每個之間的逗號之間不允許有空格)

(可以使用vim的查找功能查找到JAVA_OPTS的定義的位置,然后添加,可以在catalina.sh的第二行添加)


6.4 ? 第四步

重新啟動tomcat

瀏覽器上訪問:http://192.168.106.81:8080/solr/#/~cloud

一個主節點多個備份節點,集群只有一片。

6.5 ? 第五步

創建一個兩片的collection,每片是一主一備。

?

使用以下命令創建:

http://192.168.106.81:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

?


6.6 ? 第六步

刪除collection1.

http://192.168.106.81:8080/solr/admin/collections?action=DELETE&name=collection1

?

7、配置dataimport插件

1、? 將/home/tuzq/software/solr-4.10.3下的contrib和dist拷貝到/usr/local/solrcloud(四臺服務器都需要這樣做)

[root@localhost solr-4.10.3]# cd /home/tuzq/software/solr-4.10.3

[root@localhost solr-4.10.3]# cp -R contrib /usr/local/solrcloud

[root@localhost solr-4.10.3]# cp -R dist /usr/local/solrcloud

?

使用下面的方式將數據導入所需的jar放到相應的位置:

[root@hadoop2 contrib]# cd /usr/local/solrcloud/contrib

[root@hadoop2 contrib]# mkdir db

[root@hadoop2 contrib]# cd db

[root@hadoop2 db]# mkdir lib

?

進入:/home/tuzq/software/solr-4.10.3/dist,將: solr-dataimporthandler-4.10.3.jar、solr-dataimporthandler-extras-4.10.3.jar放到

?

solr-dataimporthandler-4.10.3.jar? solr-dataimporthandler-extras-4.10.3.jar最終上傳到lib文件夾下

?

最后的效果如下:

[root@hadoop2 lib]# pwd

/usr/local/solrcloud/contrib/dataimporthandler/lib

[root@hadoop2 lib]# ls

solr-dataimporthandler-4.10.3.jar? solr-dataimporthandler-extras-4.10.3.jar

[root@hadoop2 lib]#

?

最終將mysql-connector-java-5.1.38.jar放入到:/usr/local/solrcloud/contrib/db/lib中

cd /usr/local/solrcloud/contrib/db/lib

?

最終效果如下:

[root@hadoop1 lib]# pwd

/usr/local/solrcloud/contrib/db/lib

[root@hadoop1 lib]# ls

mysql-connector-java-5.1.38.jar

[root@hadoop1 lib]#

?

2、? 創建分詞,創建方式參考:http://blog.csdn.net/tototuzuoquan/article/details/61446788中關于分詞部分的內容:

[root@hadoop2 lib] cd /usr/local/apache-tomcat-7.0.73/webapps/solr/WEB-INF/lib

將IKAnalyzer2012_FF.jar和IKAnalyzer2012FF_u1.jar放入到該文件夾下:

?

將IK-Analyzer-2012FF\src下的ext.dic、IKAnalyzer.cfg.xml、stopword.dic上傳到:/usr/local/apache-tomcat-7.0.73/webapps/solr/WEB-INF/classes

?

3、? 以192.168.106.80為例,發現在之前放置的如下文件/usr/local/solrcloud/solrhome/collection1/conf,已經在創建集群的時候給刪除了。這時候進入:/home/tuzq/software/solr-4.10.3/example/solr/collection1/conf,在下面創建一個data-config.xml文件,文件內容是:

?

<?xml version="1.0" encoding="UTF-8" ?>?

<dataConfig>??

???????? <dataSource type="JdbcDataSource"??

?????????????????? ? driver="com.mysql.jdbc.Driver"??

?????????????????? ? url="jdbc:mysql://192.168.106.80:3306/solr"

?????????????????? ? user="root"??

?????????????????? ? password="123456"/>

???????? <document>??

?????????????????? <entity name="product" query="SELECT pid,name,catalog,catalog_name,price,description,picture FROM products">

??????????????????????????? ?<field column="pid" name="id"/>

??????????????????????????? ?<field column="name" name="product_name"/>

??????????????????????????? ?<field column="catalog" name="product_catalog"/>

??????????????????????????? ?<field column="catalog_name" name="product_catalog_name"/>

??????????????????????????? ?<field column="price" name="product_price"/>

??????????????????????????? ?<field column="description" name="product_description"/>

??????????????????????????? ?<field column="picture" name="product_picture"/>

?????????????????? </entity>??

???????? </document>

?

</dataConfig>

?

修改schema.xml:

內容如下:


<fieldType name="text_ik" class="solr.TextField">

????? <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

??? </fieldType>

???

???????? <!--定義field,指定field的type屬性為text_ik-->

???????? <field name="title_ik" type="text_ik" indexed="true" stored="true" />

??? <field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

????????

???????? <!-- 商品名稱 -->

???????? <field name="product_name" type="text_ik" indexed="true" stored="true" />

?

???????? <!-- 商品分類id -->

???????? <field name="product_catalog" type="string" indexed="true" stored="true" />

????????

???????? <!-- 商品分類名稱 -->

???????? <field name="product_catalog_name" type="string" indexed="true" stored="true" />

????????

???????? <!-- 商品價格 -->

???????? <field name="product_price" type="float" indexed="true" stored="true" />

????????

???????? <!-- 商品描述 -->

???????? <field name="product_description" type="text_ik" indexed="true" stored="false" />

????????

???????? <!-- 商品圖片 -->

???????? <field name="product_pic" type="string" indexed="false" stored="true" />

????????

???????? <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>

???????? <!--

???????? 使用復制域、將product_name和product_description

???????? 都復制到product_keywords,當搜索product_keywords的時候

???????? -->

???????? <copyField source="product_name" dest="product_keywords"/>

???????? <copyField source="product_description" dest="product_keywords"/>

?

修改solrconfig.xml的配置,可以參考http://blog.csdn.net/tototuzuoquan/article/details/61446788中關于數據導入相關的配置:

<lib dir="${solr.install.dir:../..}/contrib/extraction/lib" regex=".*\.jar" />

? <lib dir="${solr.install.dir:../..}/dist/" regex="solr-cell-\d.*\.jar" />

?

? <lib dir="${solr.install.dir:../..}/contrib/clustering/lib/" regex=".*\.jar" />

? <lib dir="${solr.install.dir:../..}/dist/" regex="solr-clustering-\d.*\.jar" />

?

? <lib dir="${solr.install.dir:../..}/contrib/langid/lib/" regex=".*\.jar" />

? <lib dir="${solr.install.dir:../..}/dist/" regex="solr-langid-\d.*\.jar" />

?

? <lib dir="${solr.install.dir:../..}/contrib/velocity/lib" regex=".*\.jar" />

? <lib dir="${solr.install.dir:../..}/dist/" regex="solr-velocity-\d.*\.jar" />

?

? <lib dir="${solr.install.dir:../..}/contrib/dataimporthandler/lib" regex=".*\.jar"/>

? <lib dir="${solr.install.dir:../..}/contrib/db/lib" regex=".*\.jar"/>

?

?

?

接著將/home/tuzq/software/solr-4.10.3/example/solr/collection1/conf中的配置文件上傳到zookeeper。

進入/home/tuzq/software/solr-4.10.3/example/scripts/cloud-scripts:

執行如下命令:

cd /home/tuzq/software/solr-4.10.3/example/scripts/cloud-scripts

./zkcli.sh -zkhost 192.168.106.80:2181,192.168.106.81:2181,192.168.106.82:2181 -cmd upconfig -confdir /home/tuzq/software/solr-4.10.3/example/solr/collection1/conf -confname myconf

?

接著訪問:http://192.168.106.80:8080/solr


點擊data-config.xml文件

結果如下(發現數據庫連接已經修改過來了):

?

重啟tomcat集群。

[root@hadoop1 bin] cd /usr/local/apache-tomcat-7.0.73/bin

[root@hadoop1 bin]# ./shutdown.sh

[root@hadoop1 bin]# ./startup.sh

?

接著訪問:http://192.168.106.80:8080/solr/

直接執行Execute,發現可以進行數據同步了。

?

最后:

?

進入

?

執行查詢之后,發現右側已經有數據了。

?

?============================================

最后,solr集群搭建好之后,就可以用于調用了,案例如下(關于jar的獲取參考:http://blog.csdn.net/tototuzuoquan/article/details/61709204):


代碼如下:

?

package cn.com.toto.cloud;

?

import org.apache.solr.client.solrj.SolrQuery;

import org.apache.solr.client.solrj.impl.CloudSolrServer;

import org.apache.solr.client.solrj.response.QueryResponse;

import org.apache.solr.common.SolrDocument;

import org.apache.solr.common.SolrDocumentList;

import org.junit.Test;

?

/**

?* @brief TestSolrCloud.java 集群配置

?* @attention 使用注意事項

?* @author toto

?* @date 2017年5月23日

?* @note begin modify by 涂作權 2017年5月23日? 原始創建

?*/

public class TestSolrCloud {

?

???????? @Test

???????? public void testCloud() throws Exception {

?????????????????? //創建一個連接

?????????????????? String zkHost = "192.168.106.80:2181,192.168.106.81:2181,192.168.106.82:2181";

?????????????????? //參數:zookeeper服務器的地址列表

?????????????????? CloudSolrServer server = new CloudSolrServer(zkHost);

?????????????????? //指定默認連接的collection

?????????????????? server.setDefaultCollection("collection2");

?????????????????? //創建一查詢對象

?????????????????? SolrQuery solrQuery = new SolrQuery();

?????????????????? solrQuery.setQuery("*:*");

?????????????????? //執行查詢

?????????????????? QueryResponse queryResponse = server.query(solrQuery);

?????????????????? SolrDocumentList solrDocumentList = queryResponse.getResults();

?????????????????? System.out.println("查詢結果總數量:" + solrDocumentList.getNumFound());

?????????????????? for (SolrDocument solrDocument : solrDocumentList) {

??????????????????????????? System.out.println(solrDocument.get("id"));

??????????????????????????? System.out.println(solrDocument.get("product_name"));

??????????????????????????? System.out.println(solrDocument.get("product_price"));

??????????????????????????? System.out.println(solrDocument.get("product_picture"));

?????????????????? }

???????? }

}

?

如果是整合在spring,springmvc的項目里面,整合方式如下:

1.1.1?? 實現步驟

第一步:創建一個web工程

第二步:導入jar包。Springmvc+spring+solrJ的jar包

第三步:開發dao

第四步:開發service

第五步:開發controller。

?

1.1.2?? Dao

@Repository

public class ProductDaoImpl implements ProductDao {

?

? ? ? //如果是單集的是HtttpSolrServer,如果是集群的環境下的,是SolrServer

???? @Autowired

? private SolrServer solrServer;

????

???? @Override

???? public ResultModel queryProduct(SolrQuery solrQuery) throws Exception {

???? ????

???? ???? //根據查詢條件查詢索引庫

???? ???? QueryResponse response = solrServer.query(solrQuery);

???? ???? //取查詢結果

???? ???? SolrDocumentList solrDocumentList = response.getResults();

???? ???? //商品列表

???? ???? List<ProductModel> productList = new ArrayList<>();

???? ???? //遍歷列表

???? ???? for (SolrDocument solrDocument : solrDocumentList) {

???? ???? ???? //取商品信息

???? ???? ???? ProductModel model = new ProductModel();

???? ???? ???? model.setPid((String) solrDocument.get("id"));

???? ???? ???? //取高亮顯示

???? ???? ???? Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();

???? ???? ???? List<String> list = highlighting.get(solrDocument.get("id")).get("product_name");

???? ???? ???? String productName = "";

???? ???? ???? if (null != list && list.size() > 0) {

???? ???? ???? ???? productName = list.get(0);

???? ???? ???? } else {

???? ???? ???? ???? productName = (String) solrDocument.get("product_name");

???? ???? ???? }

???? ???? ???? model.setName(productName);

???? ???? ???? model.setPrice((float) solrDocument.get("product_price"));

???? ???? ???? model.setPicture((String) solrDocument.get("product_picture"));

???? ???? ???? model.setCatalog_name((String) solrDocument.get("product_catalog_name"));

???? ???? ???? //添加到商品列表

???? ???? ???? productList.add(model);

???? ???? }

???? ???? //添加到返回值對象中

???? ???? ResultModel resultModel = new ResultModel();

???? ???? resultModel.setProductList(productList);

???? ???? //查詢結果的總數量

???? ???? resultModel.setRecordCount(solrDocumentList.getNumFound());

???? ????

???? ???? return resultModel;

???? }

?

}

?

?

1.1.3?? Service

@Service

public class ProductServiceImpl implements ProductService {

????

???? @Autowired

???? private ProductDao productDao;

?

???? @Override

???? public ResultModel queryProduct(String queryString, String catalog_name,

???? ???? ???? String price, String sort, Integer page) throws Exception {

???? ???? SolrQuery solrQuery = new SolrQuery();

???? ???? //拼裝查詢條件

???? ???? //主查詢條件

???? ???? if (null != queryString && !"".equals(queryString)) {

???? ???? ???? solrQuery.setQuery(queryString);

???? ???? } else {

???? ???? ???? solrQuery.setQuery("*:*");

???? ???? }

???? ???? //根據商品分類過濾

???? ???? if (null != catalog_name && !"".equals(catalog_name)) {

???? ???? ???? solrQuery.addFilterQuery("product_catalog_name:" + catalog_name);

???? ???? }

???? ???? //價格區間過濾

???? ???? if (null != price && !"".equals(price)) {

???? ???? ???? String[] strings = price.split("-");

???? ???? ???? solrQuery.addFilterQuery("product_price:["+strings[0]+" TO "+strings[1]+"]");

???? ???? }

???? ???? //排序條件

???? ???? if ("1".equals(sort)) {

???? ???? ???? solrQuery.setSort("product_price", ORDER.desc);

???? ???? } else {

???? ???? ???? solrQuery.setSort("product_price", ORDER.asc);

???? ???? }

???? ???? //分頁條件

???? ???? if (null == page) page = 1;

???? ???? //計算分頁

???? ???? int start = (page - 1) * Global.PAGE_SIZE;

???? ???? solrQuery.setStart(start);

???? ???? solrQuery.setRows(Global.PAGE_SIZE);

???? ???? //設置默認搜索域

???? ???? solrQuery.set("df", "product_keywords");

???? ???? //設置高亮

???? ???? solrQuery.setHighlight(true);

???? ???? //高亮顯示的域

???? ???? solrQuery.addHighlightField("product_name");

???? ???? //高亮顯示的前綴

???? ???? solrQuery.setHighlightSimplePre("<span style=\"color:red\">");

???? ???? //高亮后綴

???? ???? solrQuery.setHighlightSimplePost("</span>");

???? ???? //執行查詢

???? ???? ResultModel resultModel = productDao.queryProduct(solrQuery);

???? ???? //計算總頁數

???? ???? Long recordCount = resultModel.getRecordCount();

???? ???? int pageCount = (int) (recordCount / Global.PAGE_SIZE);

???? ???? if (recordCount % Global.PAGE_SIZE > 0) {

???? ???? ???? pageCount++;

???? ???? }

???? ???? resultModel.setPageCount(pageCount);

???? ???? resultModel.setCurPage(page);

???? ????

???? ???? return resultModel;

???? }

?

}

?

1.1.4?? Controller

@Controller

public class ProductController {

?

???? @Autowired

???? private ProductService productService;

????

???? @RequestMapping("/list")

???? public String queryProduct(String queryString, String catalog_name,

???? ???? ???? String price, String sort, Integer page, Model model)

???? ???? ???? throws Exception {

???? ???? //接收參數,調用service查詢商品列表

???? ???? ResultModel resultModel = productService.queryProduct(queryString, catalog_name, price, sort, page);

???? ???? //把resultModel傳遞給頁面

???? ???? model.addAttribute("result", resultModel);

???? ???? //參數回顯

???? ???? model.addAttribute("queryString", queryString);

???? ???? model.addAttribute("catalog_name", catalog_name);

???? ???? model.addAttribute("price", price);

???? ???? model.addAttribute("sort", sort);

???? ???? model.addAttribute("page", page);

???? ???? //返回jsp頁面

???? ???? return"product_list";

???? }

}

?

1.1.5?? Web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

? <display-name>SolrCloudJD</display-name>

? <welcome-file-list>

??? <welcome-file>index.html</welcome-file>

??? <welcome-file>index.htm</welcome-file>

??? <welcome-file>index.jsp</welcome-file>

??? <welcome-file>default.html</welcome-file>

??? <welcome-file>default.htm</welcome-file>

??? <welcome-file>default.jsp</welcome-file>

? </welcome-file-list>

? <!-- 前端控制器 -->

? <servlet>

? ?? <servlet-name>springmvc</servlet-name>

? ?? <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

? ?? <init-param>

? ?? ???? <param-name>contextConfigLocation</param-name>

? ?? ???? <param-value>classpath:springmvc.xml</param-value>

? ?? </init-param>

? </servlet>

? <servlet-mapping>

? ?? <servlet-name>springmvc</servlet-name>

? ?? <url-pattern>*.action</url-pattern>

? </servlet-mapping>

? <!-- post亂碼過濾器 -->

? <filter>

??? <filter-name>Character Encoding</filter-name>

??? <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

??? <init-param>

????? <param-name>encoding</param-name>

????? <param-value>UTF-8</param-value>

??? </init-param>

? </filter>

? <filter-mapping>

??? <filter-name>Character Encoding</filter-name>

??? <url-pattern>/*</url-pattern>

? </filter-mapping>

?

</web-app>

?

1.1.6?? Springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

???? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"

???? xmlns:context="http://www.springframework.org/schema/context"

???? xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

???? xsi:schemaLocation="http://www.springframework.org/schema/beans

???? ???? http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

???? ???? http://www.springframework.org/schema/mvc

???? ???? http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd

???? ???? http://www.springframework.org/schema/context

???? ???? http://www.springframework.org/schema/context/spring-context-3.1.xsd

???? ???? http://www.springframework.org/schema/aop

???? ???? http://www.springframework.org/schema/aop/spring-aop-3.1.xsd

???? ???? http://www.springframework.org/schema/tx

???? ???? http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ">

???? <!-- 配置掃描包 -->

???? <context:component-scan base-package="xxxxx"/>

???? <!-- 配置注解驅動 -->

???? <mvc:annotation-driven/>

???? <!-- jsp視圖解析器 -->

???? <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >

???? ???? <!-- 前綴 -->

???? ???? <property name="prefix" value="/WEB-INF/jsp/"></property>

???? ???? <!-- 后綴 -->

???? ???? <property name="suffix" value=".jsp"></property>

???? </bean>

???? <!-- 單機版的SolrServer -->

???? <!-- <bean class="org.apache.solr.client.solrj.impl.HttpSolrServer">

???? ???? <constructor-arg value="http://localhost:8080/solr/"></constructor-arg>

???? </bean> -->

???? <!-- 集群環境SolrServer -->

???? <bean class="org.apache.solr.client.solrj.impl.CloudSolrServer">

???? ???? <constructor-arg index="0" value="192.168.106.80:2181,192.168.106.81:2181,192.168.106.82:2181"/>

???? ???? <property name="defaultCollection" value="collection2"/>

???? </bean>

?

</beans>

?









?

?

總結

以上是生活随笔為你收集整理的Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美激情xxxx| 少妇av片 | av手机在线播放 | 欧美伦理一区二区三区 | 国产精品mm | 日日夜精品 | 天天综合网在线 | 久久综合久久综合这里只有精品 | 精品国产一区二区三区av性色 | 欧美成人精品xxx | 九草视频在线观看 | 一级α片免费看 | 国产精品成久久久久 | 99亚洲精品 | 婷婷在线免费视频 | 日韩中文字幕a | 精品免费一区二区三区 | 99精品小视频 | 中文字幕资源网 国产 | 99热官网 | 国产视频色 | 国产精品久久久网站 | 国产99久久九九精品 | 久久不射电影网 | 九九精品视频在线观看 | 91精品久久久久久综合五月天 | 国产精品综合在线观看 | 国产精品九九九九九九 | 国产精品第十页 | 国产精品igao视频网入口 | 99综合久久 | 午夜电影一区 | 久久综合桃花 | 亚洲精品国产高清 | 国产中年夫妇高潮精品视频 | 狠狠狠狠狠狠狠狠 | 国产亚洲视频在线观看 | 在线观看免费黄色 | 精品久久久久亚洲 | 黄色三级免费网址 | 韩日电影在线 | 日韩在线观看你懂的 | 亚洲 中文 欧美 日韩vr 在线 | 久久国产精品久久久 | 天天天干天天射天天天操 | 亚洲区另类春色综合小说校园片 | 日韩av一区二区在线影视 | 日韩欧美高清 | 久久久久久久18 | 在线免费观看视频一区二区三区 | 欧美精品视 | 天天操夜夜叫 | 玖玖视频 | 国产精品久久艹 | 国产精品乱看 | 天天操天天爱天天干 | 美女视频黄是免费的 | 国产精品一区在线观看 | 黄色特一级 | 国产123区在线观看 国产精品麻豆91 | 久久99视频精品 | 色综合婷婷久久 | 丝袜一区在线 | 国产小视频在线 | 国产精品成人a免费观看 | 中文字幕在线成人 | 亚洲四虎在线 | 国内精品久久久久久久 | 久草在线观看 | 狠狠操.com | 91av欧美| av高清一区二区三区 | 免费av网站观看 | 亚洲美女免费精品视频在线观看 | 视频在线日韩 | 日韩国产欧美在线视频 | 波多野结衣在线中文字幕 | 国内丰满少妇猛烈精品播放 | 国产在线999 | 狠狠躁夜夜躁人人爽超碰97香蕉 | av不卡免费在线观看 | 亚洲九九九在线观看 | 黄色免费视频在线观看 | 麻豆mv在线观看 | 久草免费手机视频 | 欧美精品亚州精品 | 久久久久久蜜桃一区二区 | 97人人添人澡人人爽超碰动图 | 九九在线精品视频 | 超碰在线日本 | 在线视频国产区 | 91成人亚洲 | 精品亚洲国产视频 | av免费黄色 | 日精品在线观看 | 在线观看亚洲精品视频 | 免费中文字幕视频 | 日韩成人精品 | 久久草网站 | 国产精品一区久久久久 | 婷婷伊人网 | 日日摸日日添日日躁av | 免费av黄色| 免费看久久久 | 国产精品免费观看网站 | 一区二区三区在线电影 | 深夜免费福利在线 | 国产成人精品亚洲日本在线观看 | 97视频免费 | 最近中文字幕完整视频高清1 | 九九99| 成年人免费av | 亚洲高清视频在线观看免费 | 免费a级黄色毛片 | 日本三级吹潮在线 | 欧美性粗大hdvideo | 亚洲日本欧美在线 | 欧美性黑人 | 日韩精品在线免费观看 | 精品久久免费看 | 在线看日韩 | 手机在线日韩视频 | 欧美久久久久久久 | 免费污片| 午夜精品99久久免费 | 国产精品免费久久久久影院仙踪林 | 日韩电影在线观看一区 | 91在线视频免费观看 | 婷婷久久网 | 亚洲欧洲国产日韩精品 | 一级黄色网址 | 91成人黄色 | 在线电影中文字幕 | 久久久私人影院 | 精品国产久 | 欧美性生活小视频 | 天天操天天舔天天干 | 人人插人人干 | 天天干天天干天天射 | 久久国产精品一二三区 | 看片网站黄 | 国产福利免费在线观看 | 免费观看的黄色片 | 最近中文字幕在线中文高清版 | 午夜电影久久久 | 国产精品初高中精品久久 | 亚洲色图色 | 91亚色视频在线观看 | 最新av网站在线观看 | 91激情小视频 | 精品在线你懂的 | 91日韩精品视频 | 国产欧美最新羞羞视频在线观看 | www.99av | 98超碰人人 | 日韩高清激情 | 超碰人人舔 | 欧美成人精品三级在线观看播放 | 国产999视频 | 综合色中色 | 99精品视频精品精品视频 | 国产经典 欧美精品 | 国产91成人在在线播放 | 欧美精品久久久久久久 | 中文字幕.av.在线 | 国产原创中文在线 | 五月婷婷操| 国产精品午夜久久 | 波多野结衣在线播放一区 | 日韩av免费在线电影 | 日韩精品免费在线 | 国产精品涩涩屋www在线观看 | 最近中文字幕大全 | 欧美激情综合五月色丁香小说 | 99精品在线播放 | 黄色影院在线免费观看 | 天天操欧美| 成人av动漫在线 | 免费在线激情电影 | 久久久久久久99精品免费观看 | 99精品视频在线看 | 一级电影免费在线观看 | 在线国产能看的 | japanesefreesexvideo高潮 | 国产成人久久久久 | 日韩免费电影在线观看 | 国产精品一区二区av日韩在线 | 日韩大片在线播放 | 黄色日本片 | 日韩av电影中文字幕 | 亚洲va综合va国产va中文 | 人人网人人爽 | 亚洲欧美怡红院 | 最近日本中文字幕 | 黄色在线看网站 | 久草在线资源观看 | 精品欧美一区二区在线观看 | 操碰av | 成人久久久久久久久久 | 久久久精选 | va视频在线观看 | 人人躁 | 97天堂网| 久草免费在线观看 | 天海翼一区二区三区免费 | 国产精品18久久久 | 精品一区二区在线观看 | 亚洲人成免费网站 | 一级大片在线观看 | 久久公开免费视频 | 亚洲午夜av久久乱码 | av大片网址 | 日韩a级免费视频 | 在线 高清 中文字幕 | 九九免费在线观看视频 | 天天玩夜夜操 | 国产午夜精品久久 | 丁香激情视频 | 亚洲三级黄色 | 欧美精品久久久久久久久久 | 亚洲精品在线资源 | 黄色福利| 日韩免费在线观看视频 | 五月天高清欧美mv | 在线97| 久久激情精品 | 欧美日韩中文字幕综合视频 | 成人免费视频播放 | 久久草草热国产精品直播 | www.av小说| 黄色免费av | 免费观看一区 | 午夜精品一区二区三区四区 | 亚洲精品字幕在线观看 | 日韩精品免费在线观看视频 | 久久综合99| 国产亚洲aⅴaaaaaa毛片 | 国产精品色视频 | 欧美视频18 | 五月开心激情 | 精品999| 日韩精品中文字幕一区二区 | 337p日本欧洲亚洲大胆裸体艺术 | 久久精品国产久精国产 | 91传媒激情理伦片 | 99在线观看视频网站 | 高潮久久久久久久久 | 久久久精品国产免费观看一区二区 | 粉嫩一区二区三区粉嫩91 | 午夜精品视频一区 | 91久久一区二区 | 人人插人人艹 | av一区二区三区在线 | 欧美日韩一区二区在线观看 | 亚洲国产久 | 韩日成人av | 国产亚洲精品久久久久久网站 | 欧美精品999| 超碰97av在线 | 欧美日韩性 | 久久国产美女视频 | 欧美伦理电影一区二区 | 国产精品国产三级国产aⅴ无密码 | 美女天天操 | 亚洲高清不卡av | 日韩av一区二区在线播放 | 欧美影院久久 | 国产粉嫩在线观看 | 国产一级片免费观看 | 在线视频国产区 | 亚洲精品视频在线播放 | 蜜臀久久99精品久久久久久网站 | 四虎国产| 99在线精品视频 | 97精品国产97久久久久久粉红 | 亚洲精品在线观看中文字幕 | 亚洲国产日韩欧美在线 | 黄色小视频在线观看免费 | 18网站在线观看 | 日韩啪啪小视频 | 精品国产伦一区二区三区免费 | 成人免费看片网址 | 一级片免费在线 | 天天色天天骑天天射 | 免费在线精品视频 | 黄色av一区二区三区 | 久久久综合电影 | 欧美另类tv | 欧美日韩中文国产一区发布 | 国产高清视频免费观看 | 夜夜干天天操 | 日韩在线视频看看 | 成人久久免费 | 久久国产电影 | 成人a毛片 | 久久综合影视 | 精品视频免费观看 | 国产在线无 | 美女久久久久久 | 国产三级精品三级在线观看 | 中文网丁香综合网 | 久久日本视频 | 亚洲精品中文字幕视频 | 精品亚洲免费 | 亚洲免费av在线 | 国产乱老熟视频网88av | 特级黄色片免费看 | 久久精品人 | 国产精品福利久久久 | 欧美日韩国产一区二区在线观看 | 不卡的av在线 | 992tv又爽又黄的免费视频 | 日韩欧美视频在线播放 | 激情导航| 91人人爽久久涩噜噜噜 | 狠狠色婷婷丁香六月 | 亚洲高清视频在线观看免费 | 久久成人国产精品免费软件 | 天堂在线一区二区 | 96超碰在线| 亚洲欧洲精品一区二区精品久久久 | 成人免费观看视频大全 | 中文字幕日韩一区二区三区不卡 | 久久免费视频6 | 久久精品成人热国产成 | 久久av一区二区三区亚洲 | 亚洲 综合 激情 | 激情五月婷婷综合 | 91看片在线免费观看 | 91九色最新| 午夜视频导航 | 久久激情视频网 | 久久久九色精品国产一区二区三区 | 欧美日韩免费视频 | 天天夜夜狠狠操 | 六月婷操 | 免费av影视 | 天天操天天干天天玩 | 亚洲精品乱码白浆高清久久久久久 | 在线观看亚洲免费视频 | 欧美性成人| 精品视频中文字幕 | 国产精品视频99 | 欧美日韩观看 | 国产精品免费一区二区三区在线观看 | 黄色精品视频 | 91香蕉国产| 伊人色综合久久天天 | 久久久久久久久久久国产精品 | 麻豆传媒视频在线免费观看 | 97超碰在线久草超碰在线观看 | 国产精品a成v人在线播放 | 国产中文字幕91 | 日批视频在线观看免费 | 免费高清在线观看成人 | 欧美日韩二三区 | 一区在线免费观看 | 久久久精选 | 国产亚洲精品精品精品 | 国产一级在线视频 | 99精品在线播放 | 午夜精品999 | h文在线观看免费 | 91精品国| 久草在线视频资源 | 成年人免费在线看 | 天天操天天干天天操天天干 | 久久公开视频 | 亚洲国产精品免费 | 国产精品丝袜久久久久久久不卡 | 安徽妇搡bbbb搡bbbb | 日韩欧美一区二区三区在线观看 | 综合久久综合久久 | 欧美日韩国产在线精品 | 中文字幕国语官网在线视频 | 成人欧美一区二区三区黑人麻豆 | 在线观看日韩精品 | 91av视频免费在线观看 | 国产人成精品一区二区三 | 免费热情视频 | 日本特黄一级 | 日韩免费电影一区二区 | 一本到视频在线观看 | 首页中文字幕 | 免费三级骚| 波多野结衣亚洲一区二区 | 欧美日韩高清在线一区 | 91精品国产自产在线观看永久 | 国产一区二区三区 在线 | 国产高清福利在线 | 在线观看岛国片 | 九九在线精品视频 | 国产精品日韩久久久久 | 国产精品99久久久久久久久 | 成人久久毛片 | 婷婷四房综合激情五月 | 91中文视频 | 九九热在线视频 | 国产福利在线免费观看 | 狠狠五月天| 免费亚洲精品视频 | 最新av观看 | 日韩一区二区久久 | 波多野结衣在线播放一区 | 国产精品久久久久永久免费看 | 97在线观看| av黄色国产| 麻豆成人网 | 欧美精品第一 | 91麻豆精品国产91久久久无限制版 | 久久久精品一区二区三区 | 黄色三级视频片 | 91九色自拍 | 亚洲精品乱码久久久久久9色 | 国产成人精品免费在线观看 | 日韩欧美在线中文字幕 | 亚洲美女视频网 | 久久综合五月天 | 99久高清在线观看视频99精品热在线观看视频 | 久久久久久久久久电影 | 久久艹综合| 97视频人人澡人人爽 | 友田真希x88av | 亚州性色 | 国产精品视频内 | 日韩欧三级 | 中文字幕亚洲情99在线 | 91中文字幕在线播放 | 日产av在线播放 | 色吊丝在线永久观看最新版本 | 免费看的黄色录像 | 国产精品九九九 | 国产精品伦一区二区三区视频 | 国产手机视频在线 | 国产视频资源在线观看 | 亚洲精品自在在线观看 | 欧美专区日韩专区 | 最近中文字幕久久 | 中文字幕视频播放 | 国内久久看 | 久久99亚洲精品久久 | 免费在线观看av | 中文av不卡| 久久黄色网页 | 一本一道久久a久久综合蜜桃 | 蜜桃av久久久亚洲精品 | 国产黄色在线观看 | 国产精品久久久久久超碰 | 97涩涩视频 | 亚洲一级片免费观看 | 黄色网免费 | 国产一级片免费观看 | 亚洲天堂激情 | 亚洲成人影音 | 最新久久免费视频 | 色婷婷综合视频在线观看 | 成人黄色国产 | 伊人婷婷综合 | 久久综合九色欧美综合狠狠 | 91伊人久久大香线蕉蜜芽人口 | 亚洲码国产日韩欧美高潮在线播放 | 成人一级 | 91福利试看 | 免费看的黄色 | 97在线观看免费观看高清 | 性日韩欧美在线视频 | 91久久爱热色涩涩 | 精品自拍av | 在线精品观看国产 | 三级黄色理论片 | 天天鲁一鲁摸一摸爽一爽 | 狠狠色伊人亚洲综合网站色 | 国产精品入口麻豆www | 久久久精品免费观看 | 久久在线精品 | 丝袜美腿在线 | 丁香色婷婷 | 西西44人体做爰大胆视频 | 亚洲在线视频免费 | 久久天天躁夜夜躁狠狠躁2022 | 天天操天天干天天爱 | 黄色国产大片 | 色视频网站免费观看 | 午夜日b视频 | www国产亚洲| 精品你懂的 | 99国产精品视频免费观看一公开 | 亚洲精品理论 | 亚洲国产欧洲综合997久久, | 亚洲 欧洲 国产 日本 综合 | 五月天六月婷 | 国产精品18久久久久久久久 | 日日碰夜夜爽 | 欧美成人猛片 | 国产精品手机播放 | 午夜精品一区二区国产 | 九九免费在线观看 | 久久久久色 | av观看网站 | 国产精品女教师 | 国产精品久久久毛片 | 欧美在线不卡一区 | 成年人在线观看免费视频 | 亚洲精选国产 | 久久综合婷婷国产二区高清 | 国产精品毛片完整版 | 日韩欧美视频免费在线观看 | 中文字幕乱码一区二区 | 欧美另类xxxx | 国产中文伊人 | 免费高清在线一区 | 不卡av电影在线观看 | 亚洲精品国产欧美在线观看 | 精品国产伦一区二区三区观看说明 | 91亚洲精品久久久蜜桃网站 | 免费性网站 | 999精品| 超碰国产在线播放 | 玖草影院| 国产精品网站 | 欧美精品xx | 欧美国产日韩在线观看 | 中字幕视频在线永久在线观看免费 | 久久久精品二区 | 成人精品一区二区三区中文字幕 | av在线免费播放网站 | 欧美精品二 | 国产一级性生活视频 | 五月花婷婷 | 国产成人亚洲在线观看 | 婷婷色吧 | 美女网站视频免费黄 | 91在线永久 | 久久精品日韩 | 丁香婷婷色综合亚洲电影 | 中文字幕在线免费播放 | 国产剧情一区二区 | 日韩色区 | 精品视频免费播放 | 成年人免费在线观看网站 | 99久久婷婷国产一区二区三区 | 亚洲自拍偷拍色图 | 免费高清国产 | 黄色a视频| 免费网站在线观看成人 | 久久社区视频 | 日韩精品一区二区在线观看视频 | 亚洲精品午夜aaa久久久 | 国产在线精品一区二区 | 欧美视频18 | 日本黄区免费视频观看 | 欧美日韩视频精品 | av超碰在线| 久久久18| 高清久久久久久 | 麻豆视频国产在线观看 | 99精品小视频 | 国产亚洲激情视频在线 | 国产三级久久久 | 日韩免费在线观看 | 日本久久综合网 | 午夜精品久久久久久久99无限制 | 国产一线天在线观看 | 日韩黄色中文字幕 | 福利一区在线 | 国产精华国产精品 | 久久久久综合视频 | 美女一区网站 | 天堂av高清 | 99久久婷婷国产综合精品 | 日日婷婷夜日日天干 | 永久免费观看视频 | 亚洲成人av在线播放 | 午夜视频在线观看欧美 | 亚洲 欧美 变态 国产 另类 | 四虎成人精品 | 欧美大片在线观看一区 | 欧美一级性视频 | 久久久久久久久久久免费 | 亚洲午夜久久久久久久久久久 | 一区二区不卡高清 | 亚洲第一中文网 | 亚洲国产精品成人精品 | 国产精品福利无圣光在线一区 | 伊人婷婷久久 | 一级黄色免费 | 国产一区电影在线观看 | av在线超碰 | 国产精品美女视频网站 | 黄色小视频在线观看免费 | 亚洲aaa级 | 视频国产在线观看18 | 成年人黄色在线观看 | 一级久久精品 | av在线日韩 | av动图| 色丁香色婷婷 | 欧美激情视频一区 | 国产亚洲精品久久 | 91高清完整版在线观看 | 欧美日韩视频一区二区三区 | 十八岁免进欧美 | 五月天亚洲婷婷 | 91欧美精品 | 天天干,天天射,天天操,天天摸 | 91丨精品丨蝌蚪丨白丝jk | 最新日本中文字幕 | 日韩免费一区二区三区 | 免费在线观看中文字幕 | 99视频在线观看一区三区 | 欧美日韩精品在线免费观看 | 精品中文字幕视频 | 国产免费三级在线观看 | 日韩国产在线观看 | 国产特级毛片aaaaaa高清 | 精品久久久精品 | www.久久久精品 | 亚洲伦理一区二区 | 丁香综合av | 精品国产日本 | 就要干b | 97av精品 | 久久综合九色综合久久久精品综合 | 一个色综合网站 | 一级全黄毛片 | 毛片区 | 久久伊人婷婷 | 色偷偷88888欧美精品久久久 | 一区二区伦理电影 | 99久久精品免费看 | 亚洲狠狠| 福利精品在线 | 国产精品va在线观看入 | 91精品国产高清自在线观看 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国内精品一区二区 | av亚洲产国偷v产偷v自拍小说 | 人人干人人干人人干 | 午夜三级影院 | 久久精品一区二区三 | 国产亚洲欧美日韩高清 | 中文字幕在线视频一区二区 | 婷婷国产在线 | 97精品在线| 天天视频色 | 欧美激情第八页 | 91香蕉视频在线 | 天天看天天干天天操 | 日韩在线激情 | 日韩精品久久久 | 精品国产123| 美女黄频 | 人人澡人人爽欧一区 | 成人免费观看视频网站 | 在线观看一级视频 | 2018好看的中文在线观看 | 久久99久久99精品免观看粉嫩 | 精品视频999| 欧美成人精品欧美一级乱黄 | 黄色福利网 | 黄色一级免费网站 | 波多野结衣在线中文字幕 | 国产视频一区二区在线播放 | 久久久九色精品国产一区二区三区 | 天天玩天天干天天操 | 黄网站色 | 久久乐九色婷婷综合色狠狠182 | 天天se天天cao天天干 | 成人福利av | 日日夜夜噜噜噜 | 久草国产精品 | 丁香六月在线观看 | 日韩精品91偷拍在线观看 | 精品乱码一区二区三四区 | 久久精视频 | 成人av资源网站 | 五月婷香| 高潮久久久久久久久 | 亚洲精品在线一区二区 | 亚洲国产大片 | 国产成年免费视频 | 91精品国产91久久久久久三级 | 亚洲午夜久久久久久久久久久 | 日本xxxxav| 13日本xxxxxⅹxxx20 | 欧美成人aa | 欧美在线视频一区二区三区 | 免费裸体视频网 | 天天摸天天干天天操天天射 | 九九色综合 | 天天爱天天舔 | 婷婷久久综合网 | 久精品在线观看 | 黄色网免费 | 黄色av网站在线免费观看 | 黄网站app在线观看免费视频 | 成人在线观看免费 | 久久久精品福利视频 | 91精品系列 | 99久精品视频 | 69亚洲精品 | 成人黄色电影在线播放 | 日韩成人在线免费观看 | 特级西西444www大精品视频免费看 | 黄色www免费 | 天天综合网 天天 | 国产成人在线看 | 免费av影视 | 久久96国产精品久久99软件 | 欧美日韩另类视频 | 在线亚洲欧美视频 | 91麻豆精品国产自产在线游戏 | 国产精品久久久久久久久久了 | 成人观看视频 | 国产精品成人一区二区三区吃奶 | 国产91精品一区二区绿帽 | 亚洲人成在线观看 | 久久噜噜少妇网站 | 国产午夜小视频 | 国产午夜精品理论片在线 | 久久成人资源 | 97热视频| 在线观看播放av | 欧美日韩午夜 | 麻花天美星空视频 | 首页中文字幕 | 久久精品伊人 | 精品国产一区二区三区四区在线观看 | 中文字幕无吗 | 久久艹艹 | 国产精品免费在线视频 | 欧美激情精品久久 | 精品国产欧美一区二区三区不卡 | 天天视频色版 | 国产不卡毛片 | 国产一区二区三区高清播放 | 很污的网站 | 日韩h在线观看 | 懂色av一区二区三区蜜臀 | 国产麻豆剧传媒免费观看 | 国产偷在线 | 成人综合婷婷国产精品久久免费 | 亚洲成人免费观看 | 99国产视频 | 精品免费观看 | 亚洲成av人电影 | 久久99国产综合精品免费 | 天天躁日日躁狠狠躁av中文 | 激情欧美在线观看 | 国产成人三级在线 | 黄色最新网址 | 国产精品国内免费一区二区三区 | 欧美日韩网站 | 欧美日韩国产页 | 爱情影院aqdy鲁丝片二区 | 天天操天天射天天爱 | 亚州精品国产 | 亚洲天天摸日日摸天天欢 | 高清国产午夜精品久久久久久 | 日本不卡一区二区 | 天天色天天搞 | 日韩国产高清在线 | 99视频精品 | 日韩在线免费不卡 | 黄色免费网站下载 | 丁香激情综合 | 亚洲午夜激情网 | 依人成人综合网 | 成人作爱视频 | 亚洲美女视频网 | 亚洲电影久久久 | 波多野结衣网址 | 九九精品视频在线观看 | 久久久精品亚洲 | 成人精品久久 | 国产区av在线 | 狠狠干我 | 黄色一级在线视频 | 亚洲精品国产精品国自产观看 | 欧美中文字幕第一页 | 在线电影 一区 | 五月婷婷视频 | 成人免费在线观看av | 五月天激情开心 | 91人网站 | www黄在线| 亚洲理论在线观看 | 精品欧美一区二区在线观看 | 久久久久中文 | 欧美老女人xx | 午夜私人影院久久久久 | 激情欧美日韩一区二区 | 久久热首页 | 久久97久久97精品免视看 | 欧美色综合久久 | 亚洲视频免费在线观看 | 国产又粗又硬又长又爽的视频 | 欧美一二三区在线播放 | 人人干网| 久久久久综合精品福利啪啪 | 久久精品国产一区二区电影 | 99视频在线观看免费 | 久久手机精品视频 | 国产精品黄色在线观看 | 成人在线视频论坛 | 激情婷婷欧美 | 欧美无极色 | 久久久久黄 | 国产在线久草 | 日韩欧美在线第一页 | 91久久奴性调教 | 国产在线观看 | 久草在线资源免费 | www视频在线播放 | 黄色国产高清 | 午夜影院三级 | 亚洲无吗天堂 | 久久久69 | 91成人精品一区在线播放69 | 成年人在线观看网站 | 中文字幕在线电影 | 黄色在线观看免费 | 国产精品电影一区 | 91麻豆操 | 日韩午夜小视频 | 91最新中文字幕 | 亚洲精品国偷拍自产在线观看 | 欧美 国产 视频 | 久久国产视频网 | 免费观看一级成人毛片 | 久久久久久久99 | 国产一区黄色 | 91完整版 | 99视频免费| 久操中文字幕在线观看 | 日韩精品短视频 | 亚洲,播放 | 狠狠色丁香婷婷综合视频 | 久久综合偷偷噜噜噜色 | 亚洲国产中文字幕 | 欧美做受69 | 午夜精品一区二区三区四区 | av中文电影 | 99精品久久99久久久久 | 国产精品理论视频 | 欧美性大胆 | 999超碰| 成人91在线 | 亚洲一区二区三区在线看 | 中文字幕在线观看一区 | 97超在线| 九色视频网 | 国产五月天婷婷 | 日日天天狠狠 | 婷婷色在线播放 | 九九九电影免费看 | 精品高清美女精品国产区 | 中文字幕视频 | 天天性天天草 | 天天干天天射天天爽 | 尤物一区二区三区 | 一区二区三区高清在线 | 成人免费观看电影 | 黄色电影在线免费观看 | 碰超在线97人人 | 日韩一区二区三免费高清在线观看 | 天天射综合网视频 | 国产高清在线观看av | 日b视频在线观看网址 | 国产在线高清 | 色综合久久久网 | 国产视频一 | 久草综合在线观看 | 在线日韩亚洲 | 99在线视频播放 | 成人久久久久久久久久 | 久久精品成人热国产成 | 国产精品精品国产 | av片一区二区 | 三上悠亚一区二区在线观看 | 日韩电影一区二区三区 | 日本巨乳在线 | 久久电影色 | 久久人人爽视频 | av福利网址导航 | 国产精品久久一区二区三区不卡 | 久久黄色免费视频 | 天天干,夜夜操 | 久久人人插 | 99精品欧美一区二区三区 | 欧美一区二区视频97 | 国内精品在线观看视频 | 国产精品伦一区二区三区视频 | 波多野结衣网址 | 在线观看成人av | 欧美激情精品一区 | 中文字幕有码在线观看 | aaawww| 99免费精品 | 一区三区在线欧 | 五月综合在线观看 | 国产精品丝袜久久久久久久不卡 | 中文字幕一区二区三区精华液 | 欧美va天堂va视频va在线 | 人人插人人澡 | 欧美性生活免费看 | 欧美日韩视频观看 | 五月天婷婷综合 | 久久爱综合 | 免费在线视频一区二区 | 免费日韩一区二区三区 | 亚洲 欧美变态 另类 综合 | 婷婷色5月 | 亚洲成成品网站 | 欧美日韩午夜爽爽 | 色欧美88888久久久久久影院 | 99九九免费视频 | 国产一级做a爱片久久毛片a | 日韩免费一区二区 | 中文字幕一区二区三区在线播放 | 亚洲精品tv久久久久久久久久 | 日韩精品影视 | 四虎国产精品成人免费影视 | 久久九九免费视频 | 又爽又黄又刺激的视频 | 日韩二级毛片 | 乱男乱女www7788 | 亚洲成年人在线播放 | 久久国产精品小视频 | 丁香六月婷婷激情 | 国产h片在线观看 | 日本中文乱码卡一卡二新区 | 日韩精品一区二区在线 | 国产美女被啪进深处喷白浆视频 | 国产精品久久久久久久久久三级 | 久久国产精品视频观看 | 999久久精品 | 在线看片视频 | 午夜精品久久久久久久99热影院 | 日本中文字幕在线免费观看 | 国产一级二级三级视频 | 91香蕉视频在线 | 精品一区二区精品 | 久久国产精品视频观看 | 亚洲欧美日韩精品久久奇米一区 | 日韩毛片在线播放 | 黄色小说视频网站 | 国产四虎影院 | 亚洲精品在线国产 | 国产午夜麻豆影院在线观看 | 国产精品一区二区 91 | 在线观看一区二区精品 | 手机在线看a | 亚洲五月花 | 欧美五月婷婷 | a黄色影院| 欧美精品在线一区二区 | www.com.日本一级 | 天天干夜夜 | 午夜美女wwww | 九九九热精品免费视频观看网站 | 国产视频亚洲精品 | 91av视频免费在线观看 | 精品美女久久久久 | 国产亚洲人成网站在线观看 | 在线观看黄色免费视频 | 国产在线精品一区二区 | 在线观看免费日韩 | 欧美 激情 国产 91 在线 | 久久亚洲专区 | 插插插色综合 | 日韩精品观看 | 狠狠狠色丁香综合久久天下网 | 夜夜躁狠狠躁日日躁 | 欧美国产精品一区二区 | 欧美色图亚洲图片 | 国产精品免费在线视频 | 999热线在线观看 | 在线欧美a| 色网站在线看 | 国产精品视频线看 | 久久午夜电影 | 99免费| 麻豆精品视频在线观看免费 | 亚洲免费观看在线视频 | 国产中文自拍 | 日本中文字幕在线看 | 99久久综合精品五月天 | 日本黄色免费在线 | 国产在线精品一区 | 色资源二区在线视频 | 99久久这里有精品 | 成人免费在线视频观看 | 超碰.com| 黄色中文字幕 | 六月丁香婷 | 国产最顶级的黄色片在线免费观看 | 久久精彩视频 |