├── src └── main │ └── java │ └── org │ └── elasticsearch │ └── index │ └── similarity │ ├── CustomSimilarity.java │ └── CustomSimilarityProvider.java ├── README.textile ├── .gitignore └── pom.xml /src/main/java/org/elasticsearch/index/similarity/CustomSimilarity.java: -------------------------------------------------------------------------------- 1 | package org.elasticsearch.index.similarity; 2 | 3 | import org.apache.lucene.search.DefaultSimilarity; 4 | 5 | /** 6 | * Custom similarity class 7 | * 8 | * @author tanguy 9 | * 10 | */ 11 | @SuppressWarnings("serial") 12 | public class CustomSimilarity extends DefaultSimilarity { 13 | 14 | @Override 15 | public float idf(int docFreq, int numDocs) { 16 | return 1.0f; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /README.textile: -------------------------------------------------------------------------------- 1 | h1. A custom SimilarityProvider example for Elasticseach 2 | 3 | This plugin contains a custom @Similarity@ class that can be used in an index: 4 | 5 |
6 | curl -XPOST 'http://host:port/tweeter/' -d '
7 | {
8 | "settings": {
9 | "similarity": {
10 | "index": {
11 | "type": "org.elasticsearch.index.similarity.CustomSimilarityProvider"
12 | },
13 | "search": {
14 | "type": "org.elasticsearch.index.similarity.CustomSimilarityProvider"
15 | }
16 | }
17 | }
18 | }'
19 |
20 |
21 | Enjoy
22 |
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled source #
2 | ###################
3 | *.com
4 | *.class
5 | *.dll
6 | *.exe
7 | *.o
8 | *.so
9 | target/
10 | target/
11 | .classpath
12 | .project
13 | .settings
14 |
15 |
16 | # Packages #
17 | ############
18 | # it's better to unpack these files and commit the raw source
19 | # git has its own built in compression methods
20 | *.7z
21 | *.dmg
22 | *.gz
23 | *.iso
24 | *.jar
25 | *.rar
26 | *.tar
27 | *.zip
28 |
29 | # Logs and databases #
30 | ######################
31 | *.log
32 | *.sql
33 | *.sqlite
34 |
35 | # OS generated files #
36 | ######################
37 | .DS_Store*
38 | ehthumbs.db
39 | Icon?
40 | Thumbs.db
41 |
42 |
--------------------------------------------------------------------------------
/src/main/java/org/elasticsearch/index/similarity/CustomSimilarityProvider.java:
--------------------------------------------------------------------------------
1 | package org.elasticsearch.index.similarity;
2 |
3 | import org.elasticsearch.common.inject.Inject;
4 | import org.elasticsearch.common.inject.assistedinject.Assisted;
5 | import org.elasticsearch.common.settings.Settings;
6 | import org.elasticsearch.index.Index;
7 | import org.elasticsearch.index.settings.IndexSettings;
8 |
9 | /**
10 | * Simple {@link SimilarityProvider} for a {@link CustomSimilarity}
11 | *
12 | * @author tlrx
13 | *
14 | */
15 | public class CustomSimilarityProvider extends AbstractSimilarityProvider