Giter VIP home page Giter VIP logo

elasticsearch-image's People

Contributors

kzwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elasticsearch-image's Issues

IndexMissingException[[test] missing

[elasticsearch-1.2.2]$ curl -XPUT 'localhost:9201/test/test/_mapping' -d '{

"test": {
    "properties": {
        "my_img": {
            "type": "image",
            "feature": {
                "CEDD": {
                    "hash": "BIT_SAMPLING"
                },
                "JCD": {
                    "hash": ["BIT_SAMPLING", "LSH"]
                },
                "FCTH": {}
            },
            "metadata": {
                "jpeg.image_width": {
                    "type": "string",
                    "store": "yes"
                },
                "jpeg.image_height": {
                    "type": "string",
                    "store": "yes"
                }
            }
        }
    }
}

}'
{"error":"IndexMissingException[[test] missing]","status":404}

please let me know, how do we solve this issue?

Local Descriptors SIFT/SURF

Hi @kzwang , I think we are supporting some features as AUTO_COLOR_CORRELOGRAM, BINARY_PATTERNS_PYRAMID, CEDD..... But this plugin is not supports Feature Sift/surf. So could you instruct me how to make this plugin support 2 features sift/surf?

net.semanticmetadata.lire.imageanalysis.features.local.opencvfeatures.CvSiftFeature/CvSurfFeature

NullPointerException in AbstractImageScorer

Hello,

I'm using ES 3.2 and elasticsearch-image-1.3.0-SNAPSHOT.

I have the following error when I try to execute my request:

[2014-09-09 15:45:06,137][DEBUG][action.search.type       ] [Vanisher] [development_leak_items][3], node[j6322b2GSHiBq9Ks4HyWLA], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@500994df] lastShard [true].search.query.QueryPhaseExecutionException: [development_leak_items][3]: query[filtered(cover_image.FCTH,FCTH)->cache(_type:leak_item)],from[0],size[10]: Query Failed [Failed to execute main query]
        at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:162)
        at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:261)
        at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:206)
        at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:203)
        at org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:517)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.elasticsearch.ElasticsearchImageProcessException: Failed to calculate score
        at org.elasticsearch.index.query.image.AbstractImageScorer.score(AbstractImageScorer.java:57)
        at org.apache.lucene.search.TopScoreDocCollector$OutOfOrderTopScoreDocCollector.collect(TopScoreDocCollector.java:140)
        at org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:193)
        at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:163)
        at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:621)
        at org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:175)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269)
        at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:156)
        ... 7 more
Caused by: java.lang.NullPointerException
        at org.elasticsearch.index.query.image.AbstractImageScorer.score(AbstractImageScorer.java:44)

Request:

{"query":{
  "image":{
    "cover_image":{
      "feature":"FCTH",
      "image":".........base64........"}
    }
  }
}

Mapping:

leak_item: {
  properties: {
    artist: {
      type: string
    }
    album: {
      type: string
    }
    cover_fingerprint: {
      type: string
    }
    cover_image: {
      type: string
    }
  }
}

Install with Elasticsearch 1.3.4

Hi, the plugin installation fail with Elasticsearch 1.3.4, anyone have a solution to install or to build with this version of elasticsearch ?

Unable to index an image

I get a "Caused by: java.lang.NoSuchMethodError: org.elasticsearch.common.io.stream.BytesStreamInput." when I try to index an image.

Here is the JSON I am trying to index -
{"name":"001_0010.jpg","image":"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"}

org.elasticsearch.index.mapper.MapperParsingException: failed to parse
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:565)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:493)
at org.elasticsearch.index.shard.IndexShard.prepareCreate(IndexShard.java:466)
at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:201)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase.performOnPrimary(TransportShardReplicationOperationAction.java:574)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase$1.doRun(TransportShardReplicationOperationAction.java:440)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:36)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: org.elasticsearch.common.io.stream.BytesStreamInput.([BZ)V
at org.elasticsearch.index.mapper.image.ImageMapper.parse(ImageMapper.java:257)
at org.elasticsearch.index.mapper.object.ObjectMapper.serializeValue(ObjectMapper.java:706)
at org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:497)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:544)
... 9 more

Search with more than one feature

Is it possible to search with both CEDD and JCD features? My mapping uses both and I can switch between them, but did not know if both could be used.

failed to put mappings on indices [[test]], type [test]

curl -XPUT 'localhost:9200/test/test/_mapping' -d '{

"test": {
    "properties": {
        "my_img": {
            "type": "image",
            "feature": {
                "CEDD": {
                    "hash": "BIT_SAMPLING"
                },
                "JCD": {
                    "hash": ["BIT_SAMPLING", "LSH"]
                },
                "FCTH": {}
            },
            "metadata": {
                "jpeg.image_width": {
                    "type": "string",
                    "store": "yes"
                },
                "jpeg.image_height": {
                    "type": "string",
                    "store": "yes"
                }
            }
        }
    }
}

}'

[2014-07-14 18:16:16,641][DEBUG][action.admin.indices.mapping.put] [Ikthalon] failed to put mappings on indices [[test]], type [test]
org.elasticsearch.index.mapper.MapperParsingException: No handler for type [image] declared on field [my_img]
at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:256)
at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:216)
at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:203)
at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:185)
at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:387)
at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:377)
at org.elasticsearch.cluster.metadata.MetaDataMappingService$5.execute(MetaDataMappingService.java:540)
at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:308)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:134)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
{"error":"MapperParsingException[No handler for type [image] declared on field [my_img]]","status":400}

Index mechanism to Elastic Search

What indexing mechanism is used to index the feature descriptors to elastic search and how is the retrieval done ?

I am trying to update the plugin to latest solr and wanted to know, what is this plugin doing internally ?

Building for other elasticsearch versions?

Are there any instructions for building these plugins for other versions of Elasticsearch? @kzwang 's version seems to have stopped at 1.1, and @Jmoati 's version stops at 2.1.1. Is there a reason for such specific compatibility, or can this same code be built for other versions of Elasticsearch?

Demo Link Not Working.

Hi All,

I am trying to check plugin demo link..but it looks demo link is now working.

Thanks,
Sumit

QueryPhaseExecutionException: AbstractMethodError[org.apache.lucene.search.Weight.scorer...

Using ES 1.3.1. The error also occurs in ES 1.2.1. Works fine with ES 1.1.2.

Mapping:

{
  "digit": {
    "properties": {
      "image": {
        "type": "image",
        "feature": {
          "CEDD": {
            "hash": "BIT_SAMPLING"
          },
          "JCD": {
            "hash": [
              "BIT_SAMPLING",
              "LSH"
            ]
          },
          "FCTH": {}
        },
        "metadata": {
          "jpeg.image_width": {
            "type": "string",
            "store": "yes"
          },
          "jpeg.image_height": {
            "type": "string",
            "store": "yes"
          }
        }
      }
    }
  }
}

Index new data:

curl -XPOST 'localhost:9200/digit_recognizer/digit/1' -d '{
    "image": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAklEQVR4AewaftIAAAJ+SURBVL3BsUticQDA8a8/fz1BiGpoOClIaAjC4O4CkRc02BY4HtQSeEQEFYQG0hKH0D/wyBs8CjrLIRsiFKuptSgb2hyi4RKDwMHKsAfHI4IjrufTys/HxhMBfAO+A194XwXgN5AA/tgAAeg0h88OBIEAzaEIYJrm8QjgK83zWdBkkgY5HA4GBweZm5tDVVUuLy9ZXl4mnU5jRtIAVVWJxWJ4PB6euVwuNE0jnU5jRlIHu91OIBBgfX0dKSXb29ukUimEEGxsbOB0Omlvb6dUKvEaiUUdHR0sLi4SCoXY3d1laWmJs7MzDKurqxju7u4olUqYkVg0Pz9PKBQimUwSDAZ5eHjA0N/fz8TEBIa9vT1qkVgwMjLCwsICmqYRDoepVqs8m52dRQjB8fEx8XicWiQ19PX1sbKywuTkJIlEgpdUVUXXdaampsjlctQiqCEQCHBzc0MymeR/hBDk83lyuRxWCEwoikJvby/j4+Pous5LTqcTQzwexyqJia6uLtxuN/f39/zL7XYTjUbxer309PTQ2tqKVRITbW1t+P1+XC4XxWIRw+joKOFwmOHhYU5PT6lWq1QqFaySmCiXy1QqFTY3Nzk4OMDn8+HxeFAUhbW1NSKRCKlUCq/Xi1USE/l8nrGxMSKRCDMzMxg0TWN/f59sNouu69ze3nJxcYFVkhp2dnY4OjpiaGgIw+HhIdfX1zzz+Xycn59jlcSCQqHA1tYWr+ns7MQqwRt0d3fjcDjIZDJYJXgDKSU2m416CN7A7/fT0tJCPQRwQoMGBgYQQlCHEwH8okHZbJbHx0eurq6wKGPjSQyY5mP9BKJ2nqSBIvAJcPG+ToAo8AMo/wW9pc9PVN6/VgAAAABJRU5ErkJgggAAAAIAAAABAAAA/////wEAAAAAAAAAAAAAAAEAAQABAAAAAB5rAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
}'

Trying to search the same image:

curl -XPOST 'localhost:9200/digit_recognizer/digit/_search' -d '{
  "query": {
    "image": {
      "image": {
        "feature": "CEDD",
        "image": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAklEQVR4AewaftIAAAJ+SURBVL3BsUticQDA8a8/fz1BiGpoOClIaAjC4O4CkRc02BY4HtQSeEQEFYQG0hKH0D/wyBs8CjrLIRsiFKuptSgb2hyi4RKDwMHKsAfHI4IjrufTys/HxhMBfAO+A194XwXgN5AA/tgAAeg0h88OBIEAzaEIYJrm8QjgK83zWdBkkgY5HA4GBweZm5tDVVUuLy9ZXl4mnU5jRtIAVVWJxWJ4PB6euVwuNE0jnU5jRlIHu91OIBBgfX0dKSXb29ukUimEEGxsbOB0Omlvb6dUKvEaiUUdHR0sLi4SCoXY3d1laWmJs7MzDKurqxju7u4olUqYkVg0Pz9PKBQimUwSDAZ5eHjA0N/fz8TEBIa9vT1qkVgwMjLCwsICmqYRDoepVqs8m52dRQjB8fEx8XicWiQ19PX1sbKywuTkJIlEgpdUVUXXdaampsjlctQiqCEQCHBzc0MymeR/hBDk83lyuRxWCEwoikJvby/j4+Pous5LTqcTQzwexyqJia6uLtxuN/f39/zL7XYTjUbxer309PTQ2tqKVRITbW1t+P1+XC4XxWIRw+joKOFwmOHhYU5PT6lWq1QqFaySmCiXy1QqFTY3Nzk4OMDn8+HxeFAUhbW1NSKRCKlUCq/Xi1USE/l8nrGxMSKRCDMzMxg0TWN/f59sNouu69ze3nJxcYFVkhp2dnY4OjpiaGgIw+HhIdfX1zzz+Xycn59jlcSCQqHA1tYWr+ns7MQqwRt0d3fjcDjIZDJYJXgDKSU2m416CN7A7/fT0tJCPQRwQoMGBgYQQlCHEwH8okHZbJbHx0eurq6wKGPjSQyY5mP9BKJ2nqSBIvAJcPG+ToAo8AMo/wW9pc9PVN6/VgAAAABJRU5ErkJgggAAAAIAAAABAAAA/////wEAAAAAAAAAAAAAAAEAAQABAAAAAB5rAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
        "hash": "BIT_SAMPLING",
        "boost": 2.1,
        "limit": 100
      }
    }
  }
}'

Results in the following error:

{
  "took": 77,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 4,
    "failed": 1,
    "failures": [
      {
        "index": "digit_recognizer",
        "shard": 2,
        "status": 500,
        "reason": "QueryPhaseExecutionException[[digit_recognizer][2]: query[filtered(image.CEDD.hash.BIT_SAMPLING,[1903, 1139, 3287, 2053, 3462, 31, 3771, 2619, 2800, 1156, 3427, 1547, 2963, 2514, 54, 2615, 92, 3889, 1420, 1063, 1420, 2252, 1352, 4054, 1985, 2649, 3935, 3715, 2188, 1853, 1760, 3958, 3233, 1181, 2210, 2277, 2487, 3780, 2495, 2638, 1722, 2286, 1989, 2191, 1754, 353, 206, 588, 713, 159, 891, 3237, 2154, 2933, 3317, 3719, 2381, 164, 3008, 2457, 2223, 1131, 223, 1066, 1326, 1630, 108, 1240, 811, 2069, 3380, 2128, 3063, 1094, 2666, 2321, 3275, 3008, 154, 402, 2982, 1699, 1093, 1056, 3367, 2065, 1342, 659, 3793, 2259, 3581, 373, 3398, 3896, 2975, 1065, 2846, 2185, 779, 2817],100,image.CEDD,CEDD^2.1)->cache(_type:digit)],from[0],size[10]: Query Failed [Failed to execute main query]]; nested: AbstractMethodError[org.apache.lucene.search.Weight.scorer(Lorg/apache/lucene/index/AtomicReaderContext;Lorg/apache/lucene/util/Bits;)Lorg/apache/lucene/search/Scorer;];"
      }
    ]
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

MergeMappingException

when I try

curl -XPUT 'localhost:9200/test/test/_mapping' -d '{
    "test": {
        "properties": {
            "my_img": {
                "type": "image",
                "feature": {
                    "CEDD": {
                        "hash": "BIT_SAMPLING"
                    },
                    "JCD": {
                        "hash": ["BIT_SAMPLING", "LSH"]
                    },
                    "FCTH": {}
                },
                "metadata": {
                    "jpeg.image_width": {
                        "type": "string",
                        "store": "yes"
                    },
                    "jpeg.image_height": {
                        "type": "string",
                        "store": "yes"
                    }
                }
            }
        }
    }
}' 

with elasticsearch1.0.1 and elasticsearch-image1.2.0, it return {"error":"MergeMappingException[Merge failed with failures {[mapper [my_img] of different type, current_type [string], merged_type [ImageMapper]]}]","status":400}, how should I to solve it?

MapperParsingException[failed to parse]; nested: NoSuchMethodError

Adding images seems to return an error. I can't index anything.

curl -XPOST 'localhost:9200/test/test' -d '{ "my_img": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAACprHcmAAAAX0lEQVQYlZWRYQrAIAiFNQ/j6T2ev10v2HDTQQmPyD6foUTv4KmRxPQTeJRGowVVVcxM3H2duH8L+AYjoigV8OMKpw5GPrsvGK07GPkC7zof/floGltznl3KYtoNAoQuatt0CKG31GsAAAAASUVORK5CYII=" }';
{
    "error": "MapperParsingException[failed to parse]; nested: NoSuchMethodError[org.elasticsearch.index.mapper.ParseContext.externalValue(Ljava/lang/Object;)V]; ",
    "status": 400
}

Using es version 1.5.0 on Centos 7

Here's my mapping for confirmation

{
    "test": {
        "mappings": {
            "test": {
                "properties": {
                    "my_img": {
                        "type": "image",
                        "feature": {
                            "JCD": {
                                "hash": [
                                    "BIT_SAMPLING",
                                    "LSH"
                                ]
                            },
                            "FCTH": {},
                            "CEDD": {
                                "hash": [
                                    "BIT_SAMPLING"
                                ]
                            }
                        },
                        "metadata": {
                            "jpeg.image_height": {
                                "type": "string",
                                "store": true
                            },
                            "jpeg.image_width": {
                                "type": "string",
                                "store": true
                            }
                        }
                    }
                }
            }
        }
    }
}

And the plugins for the node show the plugin for "image" added.

I'm pretty sure it's probably me doing something dumb, can you provide any help advice if so?

Plugin installation assumed to be site plugin, but contains source code, aborting installation.

Hi,

I have problem with plugin setup
if i run

bin/plugin --install kzwang/elasticsearch-image/1.2.0

or

bin/plugin --install kzwang/elasticsearch-image/1.3.0-SNAPSHOT

this will rise exception with message

Message:
   Error while installing plugin, reason: IllegalArgumentException: Plugin installation assumed to be site plugin, but contains source code, aborting installation.

I'm running this on Ubuntu 14.04 with elasticsearch 1.3.2

Best regards,
patS

SearchPhaseExecutionException when search with base64

I have SearchPhaseExecutionException error when I run this query

https://gist.github.com/woohoou/618010bd05ac8049e0ff

with this mapping

https://gist.github.com/woohoou/f52e92850e48c8fa67c4

{"error":"SearchPhaseExecutionException[Failed to execute phase [query_fetch], all shards failed; shardFailures {[_T4dwGt_RESzYUlhxp2YDQ][dedecora_application_renders_development][0]: QueryPhaseExecutionException[[dedecora_application_renders_development][0]: query[filtered(image_64.CEDD.hash.BIT_SAMPLING,[524, 1074, 3174, 2267, 1410, 22, 3792, 2489, 2738, 679, 3915, 1825, 2473, 2641, 1203, 2165, 2653, 3573, 404, 1060, 832, 3358, 92, 3027, 1603, 2139, 462, 787, 1582, 2495, 2286, 3542, 3305, 1169, 2732, 1646, 486, 3780, 3002, 1038, 1242, 2106, 4036, 467, 154, 1478, 1166, 1630, 2755, 571, 2825, 1772, 2216, 821, 2161, 2711, 333, 3873, 832, 2328, 2472, 1135, 218, 7, 1317, 3608, 120, 2521, 837, 2390, 2937, 2934, 2719, 3090, 606, 3569, 1730, 2519, 410, 850, 4005, 902, 3175, 1440, 3373, 3584, 1309, 723, 743, 3331, 293, 947, 3941, 3761, 2763, 936, 3004, 2289, 100, 3495],100,image_64.CEDD,CEDD^2.1)->cache(_type:render)],from[0],size[10]: Query Failed [Failed to execute main query]]; nested: AbstractMethodError[org.apache.lucene.search.Weight.scorer(Lorg/apache/lucene/index/AtomicReaderContext;Lorg/apache/lucene/util/Bits;)Lorg/apache/lucene/search/Scorer;]; }]","status":500}

I'm running this version with plugin 1.2.0

curl -XGET http://localhost:9200
{
  "status" : 200,
  "name" : "Mary Zero",
  "version" : {
    "number" : "1.3.2",
    "build_hash" : "dee175dbe2f254f3f26992f5d7591939aaefd12f",
    "build_timestamp" : "2014-08-13T14:29:30Z",
    "build_snapshot" : false,
    "lucene_version" : "4.9"
  },
  "tagline" : "You Know, for Search"
}

Am I doing something wrong?, or is a bug?

EXIF GPS Tags

Hi, are GPS tags indexed as geo_point type? E.g. searching images by location? Most of smartphones capture coordinates with the pictures.

MapperParsingException[failed to parse]; nested: NullPointerException;

When I try to index my images, I get: RequestError:
TransportError(400, u'MapperParsingException[failed to parse]; nested: NullPointerException; ')

When I try the same operation on an elastic search where the plug in is not installed, it works just fine.

I'm encoding the images into a BASE64 in Python.

Here's the mapping:
curl -XPUT 'localhost:9200/imagesearch/images/_mapping' -d '{
"images": {
"properties": {
"my_img": {
"type": "image",
"feature": {
"CEDD": {
"hash": "BIT_SAMPLING"
},
"JCD": {
"hash": ["BIT_SAMPLING", "LSH"]
},
"FCTH": {}
},
"metadata": {
"jpeg.image_width": {
"type": "string",
"store": "yes"
},
"jpeg.image_height": {
"type": "string",
"store": "yes"
}
}
}
}
}
}'

Below is what the query string looks like. Is there anything wrong with it?

{'my_img': 'AAAAAUJ1ZDEAABAAAAAIAAAAEAAAAAIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAQAABiAG8AbwBrYndzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAIAGYAYQBjAGUAYgBvAG8Aa2J3c3BibG9iAAAA+mJwbGlzdDAw2QECAwQFBgcICQoLCgsKCxARCl1TaG93U3RhdHVzQmFyW1Nob3dTaWRlYmFyW1Nob3dQYXRoYmFyW1Nob3dUb29sYmFyW1Nob3dUYWJWaWV3XxAUQ29udGFpbmVyU2hvd1NpZGViYXJcV2luZG93Qm91bmRzXFNpZGViYXJXaWR0aF8QFVByZXZpZXdQYW5lVmlzaWJpbGl0eQgJCAkICV8QGXt7MTU1NiwgMjc1fSwgezc3MCwgNDM3fX0Q7QgIGyk1QU1ZcH2KoqOkpaanqMTGAAAAAAAAAQEAAAAAAAAAEwAAAAAAAAAAAAAAAAAAAMcAAAAIAGYAYQBjAGUAYgBvAG8Aa3ZTcm5sb25nAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAEAsAAABFAAACCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBERTREIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAIAAAAGAAAAAAAAAAAQAAAIAAAAABAAABAAAAAAAAAAABAAAEAAAAAAIAAAgAAAAYAAAAAAAAAAABAAAgAAAAAAEAAEAAAAAAAQAAgAAAAAABAAEAAAAAAAEAAgAAAAAAAQAEAAAAAAABAAgAAAAAAAEAEAAAAAAAAQAgAAAAAAABAEAAAAAAAAEAgAAAAAAAAQEAAAAAAAABAgAAAAAAAAEEAAAAAAAAAQgAAAAAAAABEAAAAAAAAAEgAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=='}

Problem with dependencies on mvn clean package

If i run command mvn clean package then it will rise error

[INFO] Internal error in the plugin manager executing goal 'com.carrotsearch.randomizedtesting:junit4-maven-plugin:2.0.15:junit4': Unable to load the mojo 'com.carrotsearch.randomizedtesting:junit4-maven-plugin:2.0.15:junit4' in the plugin 'com.carrotsearch.randomizedtesting:junit4-maven-plugin'. A required class is missing: Lorg/apache/maven/repository/RepositorySystem;

If i run command mvn compile then i get

[WARNING] POM for 'com.github.kzwang:lire:pom:0.9.4-kzwang-beta1:compile' is invalid.

build is successful but target directory doesn't contain any .jar file

Best regards,
patS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.