acts_as_solr 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/CHANGE_LOG +233 -0
- data/FORKED_CHANGES +3 -0
- data/LICENSE +19 -0
- data/README.markdown +94 -0
- data/README.rdoc +84 -0
- data/Rakefile +57 -0
- data/TESTING_THE_PLUGIN +25 -0
- data/VERSION +1 -0
- data/acts_as_solr.gemspec +237 -0
- data/config/solr.yml +15 -0
- data/config/solr_environment.rb +22 -0
- data/init.rb +21 -0
- data/install.rb +11 -0
- data/lib/acts_as_solr.rb +61 -0
- data/lib/acts_methods.rb +284 -0
- data/lib/class_methods.rb +239 -0
- data/lib/common_methods.rb +89 -0
- data/lib/deprecation.rb +61 -0
- data/lib/instance_methods.rb +181 -0
- data/lib/lazy_document.rb +18 -0
- data/lib/parser_methods.rb +230 -0
- data/lib/search_results.rb +69 -0
- data/lib/solr/connection.rb +191 -0
- data/lib/solr/document.rb +78 -0
- data/lib/solr/exception.rb +13 -0
- data/lib/solr/field.rb +39 -0
- data/lib/solr/importer/array_mapper.rb +26 -0
- data/lib/solr/importer/delimited_file_source.rb +38 -0
- data/lib/solr/importer/hpricot_mapper.rb +27 -0
- data/lib/solr/importer/mapper.rb +51 -0
- data/lib/solr/importer/solr_source.rb +43 -0
- data/lib/solr/importer/xpath_mapper.rb +35 -0
- data/lib/solr/importer.rb +19 -0
- data/lib/solr/indexer.rb +52 -0
- data/lib/solr/request/add_document.rb +63 -0
- data/lib/solr/request/base.rb +36 -0
- data/lib/solr/request/commit.rb +31 -0
- data/lib/solr/request/delete.rb +50 -0
- data/lib/solr/request/dismax.rb +46 -0
- data/lib/solr/request/index_info.rb +22 -0
- data/lib/solr/request/modify_document.rb +51 -0
- data/lib/solr/request/optimize.rb +21 -0
- data/lib/solr/request/ping.rb +36 -0
- data/lib/solr/request/select.rb +56 -0
- data/lib/solr/request/spellcheck.rb +30 -0
- data/lib/solr/request/standard.rb +402 -0
- data/lib/solr/request/update.rb +23 -0
- data/lib/solr/request.rb +26 -0
- data/lib/solr/response/add_document.rb +17 -0
- data/lib/solr/response/base.rb +42 -0
- data/lib/solr/response/commit.rb +17 -0
- data/lib/solr/response/delete.rb +13 -0
- data/lib/solr/response/dismax.rb +8 -0
- data/lib/solr/response/index_info.rb +26 -0
- data/lib/solr/response/modify_document.rb +17 -0
- data/lib/solr/response/optimize.rb +14 -0
- data/lib/solr/response/ping.rb +28 -0
- data/lib/solr/response/ruby.rb +42 -0
- data/lib/solr/response/select.rb +17 -0
- data/lib/solr/response/spellcheck.rb +20 -0
- data/lib/solr/response/standard.rb +64 -0
- data/lib/solr/response/xml.rb +42 -0
- data/lib/solr/response.rb +27 -0
- data/lib/solr/solrtasks.rb +27 -0
- data/lib/solr/util.rb +32 -0
- data/lib/solr/xml.rb +44 -0
- data/lib/solr.rb +21 -0
- data/lib/solr_fixtures.rb +13 -0
- data/lib/tasks/database.rake +18 -0
- data/lib/tasks/solr.rake +137 -0
- data/lib/tasks/test.rake +7 -0
- data/lib/will_paginate_support.rb +12 -0
- data/solr/CHANGES.txt +1207 -0
- data/solr/LICENSE.txt +712 -0
- data/solr/NOTICE.txt +90 -0
- data/solr/etc/jetty.xml +205 -0
- data/solr/etc/webdefault.xml +379 -0
- data/solr/lib/easymock.jar +0 -0
- data/solr/lib/jetty-6.1.3.jar +0 -0
- data/solr/lib/jetty-util-6.1.3.jar +0 -0
- data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
- data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
- data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
- data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
- data/solr/lib/servlet-api-2.4.jar +0 -0
- data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
- data/solr/lib/xpp3-1.1.3.4.O.jar +0 -0
- data/solr/logs/.empty-dir-for-git +0 -0
- data/solr/solr/README.txt +52 -0
- data/solr/solr/bin/abc +176 -0
- data/solr/solr/bin/abo +176 -0
- data/solr/solr/bin/backup +108 -0
- data/solr/solr/bin/backupcleaner +142 -0
- data/solr/solr/bin/commit +128 -0
- data/solr/solr/bin/optimize +129 -0
- data/solr/solr/bin/readercycle +129 -0
- data/solr/solr/bin/rsyncd-disable +77 -0
- data/solr/solr/bin/rsyncd-enable +76 -0
- data/solr/solr/bin/rsyncd-start +145 -0
- data/solr/solr/bin/rsyncd-stop +105 -0
- data/solr/solr/bin/scripts-util +83 -0
- data/solr/solr/bin/snapcleaner +148 -0
- data/solr/solr/bin/snapinstaller +168 -0
- data/solr/solr/bin/snappuller +248 -0
- data/solr/solr/bin/snappuller-disable +77 -0
- data/solr/solr/bin/snappuller-enable +77 -0
- data/solr/solr/bin/snapshooter +109 -0
- data/solr/solr/conf/admin-extra.html +31 -0
- data/solr/solr/conf/protwords.txt +21 -0
- data/solr/solr/conf/schema.xml +126 -0
- data/solr/solr/conf/scripts.conf +24 -0
- data/solr/solr/conf/solrconfig.xml +458 -0
- data/solr/solr/conf/stopwords.txt +57 -0
- data/solr/solr/conf/synonyms.txt +31 -0
- data/solr/solr/conf/xslt/example.xsl +132 -0
- data/solr/solr/conf/xslt/example_atom.xsl +63 -0
- data/solr/solr/conf/xslt/example_rss.xsl +62 -0
- data/solr/start.jar +0 -0
- data/solr/tmp/.empty-dir-for-git +0 -0
- data/solr/webapps/solr.war +0 -0
- data/test/config/solr.yml +2 -0
- data/test/db/connections/mysql/connection.rb +10 -0
- data/test/db/connections/sqlite/connection.rb +8 -0
- data/test/db/migrate/001_create_books.rb +15 -0
- data/test/db/migrate/002_create_movies.rb +12 -0
- data/test/db/migrate/003_create_categories.rb +11 -0
- data/test/db/migrate/004_create_electronics.rb +16 -0
- data/test/db/migrate/005_create_authors.rb +12 -0
- data/test/db/migrate/006_create_postings.rb +9 -0
- data/test/db/migrate/007_create_posts.rb +13 -0
- data/test/db/migrate/008_create_gadgets.rb +11 -0
- data/test/fixtures/authors.yml +9 -0
- data/test/fixtures/books.yml +13 -0
- data/test/fixtures/categories.yml +7 -0
- data/test/fixtures/db_definitions/mysql.sql +41 -0
- data/test/fixtures/electronics.yml +49 -0
- data/test/fixtures/movies.yml +9 -0
- data/test/fixtures/postings.yml +10 -0
- data/test/functional/acts_as_solr_test.rb +413 -0
- data/test/functional/association_indexing_test.rb +37 -0
- data/test/functional/faceted_search_test.rb +163 -0
- data/test/functional/multi_solr_search_test.rb +51 -0
- data/test/models/author.rb +10 -0
- data/test/models/book.rb +10 -0
- data/test/models/category.rb +8 -0
- data/test/models/electronic.rb +21 -0
- data/test/models/gadget.rb +9 -0
- data/test/models/movie.rb +17 -0
- data/test/models/novel.rb +2 -0
- data/test/models/post.rb +3 -0
- data/test/models/posting.rb +11 -0
- data/test/test_helper.rb +51 -0
- data/test/unit/acts_methods_shoulda.rb +70 -0
- data/test/unit/class_methods_shoulda.rb +90 -0
- data/test/unit/common_methods_shoulda.rb +112 -0
- data/test/unit/instance_methods_shoulda.rb +326 -0
- data/test/unit/lazy_document_shoulda.rb +35 -0
- data/test/unit/parser_instance.rb +19 -0
- data/test/unit/parser_methods_shoulda.rb +279 -0
- data/test/unit/solr_instance.rb +46 -0
- data/test/unit/test_helper.rb +26 -0
- metadata +259 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
|
3
|
+
<!--
|
4
|
+
* Licensed to the Apache Software Foundation (ASF) under one or more
|
5
|
+
* contributor license agreements. See the NOTICE file distributed with
|
6
|
+
* this work for additional information regarding copyright ownership.
|
7
|
+
* The ASF licenses this file to You under the Apache License, Version 2.0
|
8
|
+
* (the "License"); you may not use this file except in compliance with
|
9
|
+
* the License. You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
*
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
* See the License for the specific language governing permissions and
|
17
|
+
* limitations under the License.
|
18
|
+
-->
|
19
|
+
|
20
|
+
<!--
|
21
|
+
Simple transform of Solr query results to Atom
|
22
|
+
-->
|
23
|
+
|
24
|
+
<xsl:stylesheet version='1.0'
|
25
|
+
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
|
26
|
+
|
27
|
+
<xsl:output method="xml" encoding="utf-8" />
|
28
|
+
|
29
|
+
<xsl:template match='/'>
|
30
|
+
<xsl:variable name="query" select="response/lst[@name='responseHeader']/lst[@name='params']/str[@name='q']"/>
|
31
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
32
|
+
<title>Example Solr Atom 1.0 Feed</title>
|
33
|
+
<subtitle>
|
34
|
+
This has been formatted by the sample "example_atom.xsl" transform -
|
35
|
+
use your own XSLT to get a nicer Atom feed.
|
36
|
+
</subtitle>
|
37
|
+
<author>
|
38
|
+
<name>Apache Solr</name>
|
39
|
+
<email>solr-user@lucene.apache.org</email>
|
40
|
+
</author>
|
41
|
+
<link rel="self" type="application/atom+xml"
|
42
|
+
href="http://localhost:8983/solr/q={$query}&wt=xslt&tr=atom.xsl"/>
|
43
|
+
<updated>
|
44
|
+
<xsl:value-of select="response/result/doc[position()=1]/date[@name='timestamp']"/>
|
45
|
+
</updated>
|
46
|
+
<id>tag:localhost,2007:example</id>
|
47
|
+
<xsl:apply-templates select="response/result/doc"/>
|
48
|
+
</feed>
|
49
|
+
</xsl:template>
|
50
|
+
|
51
|
+
<!-- search results xslt -->
|
52
|
+
<xsl:template match="doc">
|
53
|
+
<xsl:variable name="id" select="str[@name='id']"/>
|
54
|
+
<entry>
|
55
|
+
<title><xsl:value-of select="str[@name='name']"/></title>
|
56
|
+
<link href="http://localhost:8983/solr/select?q={$id}"/>
|
57
|
+
<id>tag:localhost,2007:<xsl:value-of select="$id"/></id>
|
58
|
+
<summary><xsl:value-of select="arr[@name='features']"/></summary>
|
59
|
+
<updated><xsl:value-of select="date[@name='timestamp']"/></updated>
|
60
|
+
</entry>
|
61
|
+
</xsl:template>
|
62
|
+
|
63
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,62 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
|
3
|
+
<!--
|
4
|
+
* Licensed to the Apache Software Foundation (ASF) under one or more
|
5
|
+
* contributor license agreements. See the NOTICE file distributed with
|
6
|
+
* this work for additional information regarding copyright ownership.
|
7
|
+
* The ASF licenses this file to You under the Apache License, Version 2.0
|
8
|
+
* (the "License"); you may not use this file except in compliance with
|
9
|
+
* the License. You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
*
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
* See the License for the specific language governing permissions and
|
17
|
+
* limitations under the License.
|
18
|
+
-->
|
19
|
+
|
20
|
+
<!--
|
21
|
+
Simple transform of Solr query results to RSS
|
22
|
+
-->
|
23
|
+
|
24
|
+
<xsl:stylesheet version='1.0'
|
25
|
+
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
|
26
|
+
|
27
|
+
<xsl:output method="xml" encoding="utf-8" />
|
28
|
+
<xsl:template match='/'>
|
29
|
+
<rss version="2.0">
|
30
|
+
<channel>
|
31
|
+
<title>Example Solr RSS 2.0 Feed</title>
|
32
|
+
<link>http://localhost:8983/solr</link>
|
33
|
+
<description>
|
34
|
+
This has been formatted by the sample "example_rss.xsl" transform -
|
35
|
+
use your own XSLT to get a nicer RSS feed.
|
36
|
+
</description>
|
37
|
+
<language>en-us</language>
|
38
|
+
<docs>http://localhost:8983/solr</docs>
|
39
|
+
<xsl:apply-templates select="response/result/doc"/>
|
40
|
+
</channel>
|
41
|
+
</rss>
|
42
|
+
</xsl:template>
|
43
|
+
|
44
|
+
<!-- search results xslt -->
|
45
|
+
<xsl:template match="doc">
|
46
|
+
<xsl:variable name="id" select="str[@name='id']"/>
|
47
|
+
<xsl:variable name="timestamp" select="date[@name='timestamp']"/>
|
48
|
+
<item>
|
49
|
+
<title><xsl:value-of select="str[@name='name']"/></title>
|
50
|
+
<link>
|
51
|
+
http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
|
52
|
+
</link>
|
53
|
+
<description>
|
54
|
+
<xsl:value-of select="arr[@name='features']"/>
|
55
|
+
</description>
|
56
|
+
<pubDate><xsl:value-of select="$timestamp"/></pubDate>
|
57
|
+
<guid>
|
58
|
+
http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
|
59
|
+
</guid>
|
60
|
+
</item>
|
61
|
+
</xsl:template>
|
62
|
+
</xsl:stylesheet>
|
data/solr/start.jar
ADDED
Binary file
|
File without changes
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateBooks < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :books, :force => true do |t|
|
4
|
+
t.column :category_id, :integer
|
5
|
+
t.column :name, :string
|
6
|
+
t.column :author, :string
|
7
|
+
t.column :type, :string
|
8
|
+
t.column :published_on, :date
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.down
|
13
|
+
drop_table :books
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateElectronics < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :electronics, :force => true do |t|
|
4
|
+
t.column :name, :string
|
5
|
+
t.column :manufacturer, :string
|
6
|
+
t.column :features, :string
|
7
|
+
t.column :category, :string
|
8
|
+
t.column :price, :string
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.down
|
14
|
+
drop_table :electronics
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreatePosts < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :posts, :force => true do |t|
|
4
|
+
t.column :name, :string
|
5
|
+
t.column :reply_counter, :integer
|
6
|
+
t.column :posted_at, :datetime
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.down
|
11
|
+
drop_table :posts
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
tom_clancy:
|
2
|
+
id: 1
|
3
|
+
name: Tom Clancy
|
4
|
+
biography: Tom Clancy (born 1947) writes novels of adventure and espionage in the international military-industrial complex that have earned him enormous popularity in the 1980s as a creator of the "techno-thriller" genre.
|
5
|
+
|
6
|
+
stephen_king:
|
7
|
+
id: 2
|
8
|
+
name: Stephen King
|
9
|
+
biography: Stephen King (born 1947) is a prolific and immensely popular author of horror fiction. In his works, King blends elements of the traditional gothic tale with those of the modern psychological thriller, detective, and science fiction genres.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
splinter_cell:
|
2
|
+
id: 1
|
3
|
+
category_id: 1
|
4
|
+
name: Splinter Cell
|
5
|
+
author: Tom Clancy
|
6
|
+
published_on: <%= Date.today - 1.year %>
|
7
|
+
|
8
|
+
ruby:
|
9
|
+
id: 2
|
10
|
+
category_id: 2
|
11
|
+
name: Ruby for Dummies
|
12
|
+
author: Peter McPeterson
|
13
|
+
published_on: <%= Date.today - 2.years %>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
DROP DATABASE IF EXISTS `actsassolr_tests`;
|
2
|
+
CREATE DATABASE IF NOT EXISTS `actsassolr_tests`;
|
3
|
+
USE `actsassolr_tests`
|
4
|
+
|
5
|
+
CREATE TABLE `books` (
|
6
|
+
`id` int(11) NOT NULL auto_increment,
|
7
|
+
`category_id` int(11),
|
8
|
+
`name` varchar(200) default NULL,
|
9
|
+
`author` varchar(200) default NULL,
|
10
|
+
PRIMARY KEY (`id`)
|
11
|
+
);
|
12
|
+
|
13
|
+
CREATE TABLE `movies` (
|
14
|
+
`id` int(11) NOT NULL auto_increment,
|
15
|
+
`name` varchar(200) default NULL,
|
16
|
+
`description` varchar(255) default NULL,
|
17
|
+
PRIMARY KEY (`id`)
|
18
|
+
);
|
19
|
+
|
20
|
+
CREATE TABLE `categories` (
|
21
|
+
`id` int(11) NOT NULL auto_increment,
|
22
|
+
`name` varchar(200) default NULL,
|
23
|
+
PRIMARY KEY (`id`)
|
24
|
+
);
|
25
|
+
|
26
|
+
CREATE TABLE `electronics` (
|
27
|
+
`id` int(11) NOT NULL auto_increment,
|
28
|
+
`name` varchar(200) default NULL,
|
29
|
+
`manufacturer` varchar(255) default NULL,
|
30
|
+
`features` varchar(255) default NULL,
|
31
|
+
`category` varchar(255) default NULL,
|
32
|
+
`price` varchar(20) default NULL,
|
33
|
+
PRIMARY KEY (`id`)
|
34
|
+
);
|
35
|
+
|
36
|
+
CREATE TABLE `authors` (
|
37
|
+
`id` int(11) NOT NULL auto_increment,
|
38
|
+
`name` varchar(200) default NULL,
|
39
|
+
`biography` text default NULL,
|
40
|
+
PRIMARY KEY (`id`)
|
41
|
+
);
|
@@ -0,0 +1,49 @@
|
|
1
|
+
ipod_video:
|
2
|
+
id: 1
|
3
|
+
name: Apple 60 GB Memory iPod with Video Playback Black
|
4
|
+
manufacturer: Apple Computer Inc.
|
5
|
+
features: iTunes, Podcasts, Audiobooks
|
6
|
+
category: Electronics
|
7
|
+
price: 599.00
|
8
|
+
created_at: <%= Date.today - 1.year %>
|
9
|
+
updated_at: <%= Date.today - 1.month %>
|
10
|
+
|
11
|
+
dell_monitor:
|
12
|
+
id: 2
|
13
|
+
name: Dell Widescreen UltraSharp 3007WFP
|
14
|
+
manufacturer: Dell, Inc
|
15
|
+
features: 30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast
|
16
|
+
category: Electronics
|
17
|
+
price: 750.00
|
18
|
+
created_at: <%= Date.today - 1.year %>
|
19
|
+
updated_at: <%= Date.today - 1.month %>
|
20
|
+
|
21
|
+
samsung_hd:
|
22
|
+
id: 3
|
23
|
+
name: Samsung SpinPoint P120 SP2514N - hard drive - 250 GB of Memory Storage - ATA-133
|
24
|
+
manufacturer: Samsung Electronics Co. Ltd.
|
25
|
+
features: 7200RPM, 8MB cache, IDE Ultra ATA-133
|
26
|
+
category: Hard Drive
|
27
|
+
price: 319.00
|
28
|
+
created_at: <%= Date.today - 2.years %>
|
29
|
+
updated_at: <%= Date.today - 2.months %>
|
30
|
+
|
31
|
+
corsair_ram:
|
32
|
+
id: 4
|
33
|
+
name: CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail
|
34
|
+
manufacturer: Corsair Microsystems Inc.
|
35
|
+
features: CAS latency 2, 2-3-3-6 timing, 2.75v, unbuffered, heat-spreader
|
36
|
+
category: Memory
|
37
|
+
price: 155.00
|
38
|
+
created_at: <%= Date.today - 6.years %>
|
39
|
+
updated_at: <%= Date.today - 3.months %>
|
40
|
+
|
41
|
+
a_data_ram:
|
42
|
+
id: 5
|
43
|
+
name: A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM
|
44
|
+
manufacturer: A-DATA Technology Inc.
|
45
|
+
features: CAS latency 3, 2.7v
|
46
|
+
category: Memory
|
47
|
+
price: 65.79
|
48
|
+
created_at: <%= Date.today - 9.years %>
|
49
|
+
updated_at: <%= Date.today - 4.months %>
|