easy_solr 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/easy_solr/queryer.rb +20 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 583dd9d2f7d895485a6c1d0df29852dff069dcde
|
4
|
+
data.tar.gz: 2bb3c3beb640ef3c0750981a54a6ea9114a98f3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9cea2972cf56973eab33bfefd7d701fc659e9f03ea7064adb8aa2ed2e0d8ebe4f78fbf481c202d248b6788b8d060323151356d5939043652d8ce688f830133b
|
7
|
+
data.tar.gz: 0ae6d00e0dcc52a3ae5dd2778d1a0ce495c4fc956ceddddf936a03755c15f58fdabbffd6ed30040a74c80381e688fb617bc166acedb7c2a50011a1db07f7d94a
|
data/lib/easy_solr/queryer.rb
CHANGED
@@ -5,13 +5,14 @@ module EasySolr
|
|
5
5
|
include ::EasySolr::ResultItem
|
6
6
|
include ::EasySolr::Translate
|
7
7
|
|
8
|
-
attr_accessor :solr_settings
|
9
|
-
|
10
|
-
def initialize(links, r_settings)
|
11
|
-
@solr_settings = r_settings
|
8
|
+
attr_accessor :solr_settings, :client_class_name
|
12
9
|
|
10
|
+
def initialize(client_class_name)
|
11
|
+
nn_object = Object.const_get(client_class_name)
|
12
|
+
@client_class_name = nn_object.table_name
|
13
|
+
@solr_settings = nn_object::SOLR_SEVICE_CONFIG
|
14
|
+
@expr.nn_custom_links = nn_object::LINKS
|
13
15
|
@expr = ::EasySolr::Expressions.new
|
14
|
-
@expr.nn_custom_links = links
|
15
16
|
end
|
16
17
|
|
17
18
|
##
|
@@ -19,7 +20,7 @@ module EasySolr
|
|
19
20
|
#
|
20
21
|
# 根据所有生成的信息 执行 Solr 模糊查询
|
21
22
|
#
|
22
|
-
def
|
23
|
+
def perform
|
23
24
|
solr_str = @expr.query_string_for_solr
|
24
25
|
|
25
26
|
solr_params = { :q => solr_str, :rows => 10 }
|
@@ -64,8 +65,19 @@ module EasySolr
|
|
64
65
|
## 2、solr_pri_key || mysql_pri_key
|
65
66
|
break_down(@expr.nn_custom_links)
|
66
67
|
|
67
|
-
pri_ids =
|
68
|
-
scope.where(" #{ mysql_pri_key } IN (?) ", pri_ids)
|
68
|
+
pri_ids = self.perform.map{|_item| _item[solr_pri_key].to_i}
|
69
|
+
scope.where(" #{ client_class_name }.#{ mysql_pri_key } IN (?) ", pri_ids)
|
70
|
+
end
|
71
|
+
|
72
|
+
##
|
73
|
+
# ==== Description
|
74
|
+
#
|
75
|
+
# 根据主键生成 scope 的字符串形式
|
76
|
+
#
|
77
|
+
def generate_scope_str(scope)
|
78
|
+
break_down(@expr.nn_custom_links)
|
79
|
+
|
80
|
+
" #{ client_class_name }.#{ mysql_pri_key } IN (?) "
|
69
81
|
end
|
70
82
|
|
71
83
|
end
|