<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards Practical Visual Search Engine Within Elasticsearch</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jing Zhang</string-name>
          <email>jing@jet.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ACM Reference Format: Cun (Matthew) Mu</institution>
          ,
          <addr-line>Jun (Raymond) Zhao, Guang Yang, Jing Zhang, and Zheng (John) Yan. 2018. Towards Practical Visual Search Engine</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Cun (Matthew) Mu Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>NJ</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Guang Yang Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>NJ</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>NJ</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Jun (Raymond) Zhao Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>NJ</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Zheng ( John) Yan Jet.com/Walmart Labs Hoboken</institution>
          ,
          <addr-line>NJ</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>In this paper, we describe our end-to-end content-based image retrieval system built upon Elasticsearch, a well-known and popular textual search engine. As far as we know, this is the ifrst time such a system has been implemented in eCommerce, and our eforts have turned out to be highly worthwhile. We end up with a novel and exciting visual search solution that is extremely easy to be deployed, distributed, scaled and monitored in a cost-friendly manner. Moreover, our platform is intrinsically flexible in supporting multimodal searches, where visual and textual information can be jointly leveraged in retrieval. The core idea is to encode image feature vectors into a collection of string tokens in a way such that closer vectors will share more string tokens in common. By doing that, we can utilize Elasticsearch to eficiently retrieve similar images based on similarities within encoded sting tokens. As part of the development, we propose a novel vector to string encoding method, which is shown to substantially outperform the previous ones in terms of both precision and latency. First-hand experiences in implementing this Elasticsearchbased platform are extensively addressed, which should be valuable to practitioners also interested in building visual search engine on top of Elasticsearch.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>CCS CONCEPTS</title>
      <p>• Information systems → Image search; • Applied
computing → Online shopping;
Permission to make digital or hard copies of part or all of this work for personal
or classroom use is granted without fee provided that copies are not made or
distributed for profit or commercial advantage and that copies bear this notice
and the full citation on the first page. Copyrights for third-party components of
this work must be honored. For all other uses, contact the owner/author(s).
SIGIR 2018 eCom, July 2018, Ann Arbor, Michigan, USA
© 2018 Copyright held by the owner/author(s).
1</p>
    </sec>
    <sec id="sec-2">
      <title>INTRODUCTION</title>
      <p>
        Elasticsearch [
        <xref ref-type="bibr" rid="ref19">22</xref>
        ], built on top of Apache Lucene library [
        <xref ref-type="bibr" rid="ref15 ref35 ref4">4, 15,
38</xref>
        ], is an open-source, real-time, distributed and multi-tenant
textual search engine. Since its first release in February 2010,
Elasticsearch has been widely adopted by eCommerce websites
(e.g., Ebay, Etsy, Jet, Netflix, Grubhub) to successfully help
customers discover products based on the textual queries they
requested [
        <xref ref-type="bibr" rid="ref13 ref54">13, 57</xref>
        ] .
      </p>
      <p>
        But a picture is more than often worth a thousand words. With
the explosive usage of phone cameras, content-based image
retrieval [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is increasingly demanded from customers.
Especially for categories like furniture, fashion and lifestyle (where
buying decisions are largely influenced by products’ visual
appealingness), uploading a picture of the product they like could
be substantially more specific, expressive and straightforward
than elaborating it into abstract textual description.
      </p>
      <p>
        Finding images relevant with the uploaded picture tends to
be much more involved and vaguer than retrieving documents
matching keywords [
        <xref ref-type="bibr" rid="ref42 ref45 ref55">45, 48, 58</xref>
        ] typed into the search box, as
words (by themselves) are substantially more semantic and
meaningful than image pixel values. Fortunately, modern AI
techniques, especially the ones developed in the field of deep
learning [
        <xref ref-type="bibr" rid="ref18 ref3">3, 21</xref>
        ], have made incredible strides in image feature
extraction [
        <xref ref-type="bibr" rid="ref17 ref29 ref36 ref39 ref40 ref41 ref56 ref57">17, 32, 39, 42–44, 59, 60</xref>
        ] to embed images as points
in high-dimensional Euclidean space, where similar images are
located nearby. So, given a query image, we can simply retrieve
its visually similar images by finding its nearest neighbors in this
high-dimensional feature space. However, Elasticsearch, as an
inverted-index-based search engine, is not much empowered to
accomplish this mathematically straightforward operation in
an eficient manner (though eforts [
        <xref ref-type="bibr" rid="ref27 ref33 ref6 ref7">6, 7, 19, 30, 36</xref>
        ] have been
made successfully in finding nearest neighbors over spaces
of much lower dimension), which significantly limits the
applicability of its nicely designed engineering system as well
as the huge volume of product metadata already indexed into
its database (for textual search). The gist of the paper is to
conquer this dificulty, and thus make it feasible to conduct
visual search within Elasticsearch.
      </p>
      <p>In this paper, we describe our end-to-end visual search
platform built upon Elasticsearch. As far as we know, this
Image
descriptor</p>
      <p>Vector to string
tokens encoding
Database images
Indexing
Query
image</p>
      <p>Image
descriptor</p>
      <p>
        Indexing
Retrieval based on token matching
Reranking within
is the first attempt to achieve this goal and our eforts turn
out to be quite worthwhile. By taking advantage of the
mature engineering design from Elasticsearch, we end up with
a visual search solution that is extremely easy to be deployed,
distributed, scaled and monitored. Moreover, due to
Elasticsearch’s disk-based (and partially memory cached) inverted
index mechanism, our system is quite cost-efective . In contrast to
many existing systems (using hashing-based [
        <xref ref-type="bibr" rid="ref2 ref20 ref30 ref51 ref52 ref53">2, 20, 23, 33, 54–
56</xref>
        ] or quantization-based [
        <xref ref-type="bibr" rid="ref22 ref23 ref24 ref26">18, 25–27, 29</xref>
        ] approximate nearest
neighbor (ANN) methods), we do not need to load those
millions of (high-dimensional and dense) image feature vectors
into RAM, one of the most expensive resources in large-scale
computations. Furthermore, by integrating textual search and
visual search into one engine, both types of product
information can now be shared and utilized seamlessly in a
single index. This paves a coherent way to support multimodal
searches, allowing customers to express their interests in a
variety of textual requests (e.g., keywords, brands, attributes,
price ranges) jointly with visual queries, at which most of
existing visual search systems fall short (if not impossible).
      </p>
      <p>
        Since the image preprocessing step and the image feature
extraction step involved in our system are standard and
independent of Elasticsearch, in this paper we address more
towards how we empower Elasticsearch to retrieve close
image feature vectors, i.e., the Elasticsearch-related part of the
visual system. Our nearest neighbor retrieval approach falls
under the general framework recently proposed by Rygl et al.
[
        <xref ref-type="bibr" rid="ref44">47</xref>
        ]. The core idea is to create text documents from image
feature vectors by encoding each vector into a collection of
string tokens in a way such that closer vectors will share more
string tokens in common. This enables Elasticsearch to
approximately retrieve neighbors in image feature space based on
their encoded textual similarities. The quality of the encoding
procedure (as expected) is extremely critical to the success
of this approach. In the paper, we propose a noval scheme
called subvector-wise clustering encoder, which substantially
outperforms the element-wise rounding one proposed and
examined by Rygl et al. [
        <xref ref-type="bibr" rid="ref44">47</xref>
        ] and Ruzicka et al. [
        <xref ref-type="bibr" rid="ref43">46</xref>
        ], in terms of
both precision and latency. Note that our methodology should
be generally applicable to any full-text search engine (e.g., Solr
[
        <xref ref-type="bibr" rid="ref48">51</xref>
        ], Sphinx [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) besides Elasticsearch, but in the paper we do
share a number of Elasticsearch-specific implementation tips
based on our first-hand experience, which should be valuable
to practitioners interested in building their own visual search
system on top of Elasticsearch.
      </p>
      <p>The rest of the paper is organized as follows. In Section 2,
we describe the general pipeline of our visual search system,
and highlight a number of engineering tweaks we found useful
when implementing the system on Elasticsearch. In Section 3
and 4, we focus on how to encode an image feature vector into
a collection of string tokens—the most crucial part in setting
up the system. In Section 3, we first review the element-wise
rounding encoder and address its drawbacks. As a remedy,
we propose a new encoding scheme called subvector-wise
clustering encoder, which is empirically shown in Section 4 to
much outperform the element-wise rounding one.
2</p>
      <p>GENERAL FRAMEWORK OF VISUAL
SEARCH WITHIN ELASTICSEARCH
The whole pipeline of our visual search engine is depicted in
Figure 1, which primarily consists of two phases: indexing and
searching.</p>
      <sec id="sec-2-1">
        <title>Indexing. Given image feature vectors</title>
        <p>we will first encode them into string tokens</p>
        <p>X := {x1, x2, . . . , xn } ⊆ Rd ,</p>
        <p>S := {s1, s2, . . . , sn } ,
where si := E(xi ) for some encoder E(·) converting a
ddimensional vector into a collection of string tokens of
cardinality m. The original numerical vectors X and encoded
tokens S, together with their textual metadata (e.g, product
titles, prices, attributes), will be all indexed into the
Elasticsearch database, to wait for being searched.</p>
        <p>Searching. Conceptually, the search phase consists of two
steps: retrieval and reranking. Given a query vector xˆ , we will
ifrst encode it into sˆ := E(xˆ ) via the same encoder used in
indexing, and retrieve r (r ≪ n) most similar vectors R :=
xi1 , xi2 , . . . , xir as candidates based on the overlap between
the string token set sˆ and the ones in {s1, s2, . . . , sn }, i.e.,
{i1, i2, . . . , ir } = r-arg max |sˆ ∩ si |.</p>
        <p>i ∈ {1,2, ...,n }
We will then re-rank vectors in the candidate set R according
to their exact Euclidean distances with respect to the query
vector xˆ , and choose the top-s (s ≤ r ) ones as the final visual
search result to output, i.e.,</p>
        <p>s-arg min
i ∈ {i1,i2, ...,ir }</p>
        <p>∥xi − xˆ ∥2 .</p>
        <p>As expected, the choice of E(·) is extremely critical to the
success of the above approach. A good encoder E(·) should
encourage image feature vectors closer in Euclidean distance
to share more string tokens in common, so that the retrieval set
R obtained from the optimization problem (2.3) could contain
enough meaning candidates to be fed into the exact search
in (2.4). We will elaborate and compare diferent choices of
encoders in the next two sections (Section 3&amp;4).</p>
        <p>Implementation. In this part, we will address how we
implement the retrieval and reranking steps in the searching phase
eficiently within just one JSON-encoded request body (i.e.,
JSON 1), which instructs the Elasticsearch server to compute
(2.3) and (2.4) and then return the visual search result in a
desired order (via Elasticsearch’s RESTful API over HTTP).</p>
        <p>
          For the retrieval piece, we construct a function score query
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] to rank database images based on (2.3). Specifically, our
function score query (lines 3-29 in JSON 1) consists of m score
functions, each of which is a term filter [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] (e.g., lines 6-14
(2.1)
(2.2)
(2.3)
(2.4)
in JSON 1) to check whether the encoded feature token sˆi
from the query image is being matched or not. With all the m
scores being summed up (line 26 in JSON 1) using the same
weight (e.g., lines 13 and 23 in JSON 1), the ranking score for
the database images are calculated exactly as the number of
feature tokens they overlap with the ones in sˆ.
        </p>
        <p>
          For the reranking piece, our initial trial is to fetch the top-r
image vectors from the retrieval step, and calculate (2.4) to
re-rank them outside Elasticsearch. But this approach
prevents our visual system from being an end-to-end one within
Elasticsearch, and thus makes it hard to leverage many
useful microservices (e.g., pagination) provided by Elasticsearch.
More severely, this vanilla approach introduces substantial
latency in communication as thousands of high-dimensional
and dense image embedding vectors have to be transported
out of Elasticsearch database. As a remedy, we design a query
rescorer [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] (lines 30-52 in JSON 1) within Elasticsearch to
execute a second query on the top-r database image vectors
returned from the function score query, to tweak their scores and
re-rank them based on their exact Euclidean distances with
the query image vector. In specific, we implement a custom
Elasticsearch plugin [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] (lines 35-47 in JSON 1) to compute
the negation of the Euclidean distance between query image
vector and the one from database. As Elasticsearch will rank
the result based on the ranking score from high to low, the
output will be in the desired order from the smallest distance
to the largest one.
        </p>
        <p>
          Multimodal search. More often than not, scenarios more
complicated than visual search will be encountered. For
instance, a customer might be fascinated with the design and
style of an armoire at her friend’s house, but she might want
to change its color to be better aligned with her own home
design or want the price to be within her budget (see Figure
2). Searching using the picture snapped is most likely in vain.
To better enhance customers’ shopping experiences, a visual
search engine should be capable of retrieving results as a joint
outcome by taking both the visual and textual requests from
customers into consideration. Fortunately, our
Elasticsearchbased visual system can immediately achieve this with one
or two lines modifications in JSON 1. In particular, filters can
be inserted within the function score query to search only
among products of customers’ interests (e.g., within certain
price range [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], attributes, colors). Moreover, general full-text
query [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] can also be handled, score of which can be blended
with the one from visual search in a weighted manner.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>VECTOR TO STRING ENCODING</title>
      <p>
        The success of our approach hinges upon the quality of the
encoder E(·), which ideally should encourage closer vectors to
share more sting tokens in common, so that the retrieval set R
found based on token matching contains enough meaningful
candidates. In the following, we first review the element-wise
rounding encoder proposed by Rygl et al. [
        <xref ref-type="bibr" rid="ref44">47</xref>
        ], and discuss
its potential drawbacks. As a remedy, we propose a novel
encoding scheme called subvector-wise clustering encoder.
with only the first and second entries being selected; and when
m is set as 1, the string tokens will be produced as
      </p>
      <p>
        Drawbacks. Although the filtering strategy is suggested to
maintain a good balance between feature sparsity and search
quality [
        <xref ref-type="bibr" rid="ref43 ref44">46, 47</xref>
        ], it might not be the best practice to reduce
the number of string tokens with respect to finding nearest
neighbors in general. First, for two points xˆ , x ∈ Rd , their
Euclidean distance
(3.1)
d
Õ
∥xˆ − x ∥22 =
      </p>
      <p>
        (xˆi − xi )2,
i=1
is summed along each axis equally rather than biasedly based
on the magnitude of xˆi (or xi ). In specific, a mismatch/match
with a (rounded) value 0.01 does not imply that it is less
important than a mismatch/match with a 0.99, in terms of their
contributions to the sum (3.1). What essentially matters is the
deviation ∆ i := xˆi − xi rather than the value of xˆi (or xi ) by
itself. Therefore, entries with small magnitude should not be
considered as less essential and be totally ignored. Second, the
eficacy of the filtering strategy is vulnerable to data
distributions. For example, when the embedding vectors are binary
codes [
        <xref ref-type="bibr" rid="ref21 ref28 ref31 ref32 ref49">24, 31, 34, 35, 52</xref>
        ], choosing top-m entries will lead to
an immediate tanglement.
      </p>
      <p>In the next subsection, we will propose an alternative
encoder, which keeps all value information into consideration
and is also more robust with respect to the underlying data
distribution.
3.2</p>
    </sec>
    <sec id="sec-4">
      <title>Subvector-wise Clustering</title>
      <p>
        Diferent from the element-wise rounding one, an encoder
that operates on a subvector level will be presented in this
part. The idea is also quite natural and straightforward. For
any vector x ∈ Rd , we divide it into m subvectors1,
[x1, . . . , xd/m , xd/m+1, . . . , x2d/m , . . . . . . , xd−m+1, . . . , xm ].
| {xz1 } | {xz2 } | x{zm }
Denote Xi := x1i, x2i, . . . , xni as the collection of the i-th
subvectors from X for i = 1, 2, . . . , m. We will then separately
apply the classical k-means algorithm [
        <xref ref-type="bibr" rid="ref34">37</xref>
        ] to divide each Xi
into k clusters with the learned assignment function
Ai : Rd/m
      </p>
      <p>→ {1, 2, . . . , k }
assigning each subvector to the cluster index it belongs to.
Then for any x ∈ Rd , we will encode it into a collection of m
string tokens</p>
      <p>“pos1cluster{A1(x 1)}”, “pos2cluster{A2(x 2)}”, . . . . (3.3)
The whole idea is illustrated in Figure 3. The trade-of between
search latency and quality is well controlled by the parameter
m. In specific, a larger m will tend to increase the search quality
as well as the search latency, as more string tokens per each
vector will be indexed.</p>
      <sec id="sec-4-1">
        <title>1For simplicity, we assume m divides d.</title>
        <p>(3.2)</p>
        <p>In contrast with the element-wise rounding encoder, our
subvector-wise clustering encoder obtains m string tokens
without throwing away any entry in x , and will generate
string tokens more adaptive with the data distribution, as
i
the assignment function A (·) for each subspace is learned
through Xi (or data points sampled from Xi ).</p>
        <p>1
2
7
4
3
6
5
1
3
2
5
4
1
2
7
6
5
4
3
In this section, we will compare the performance of the
subvectorwise clustering encoder and the element-wise rounding one
in terms of both precision and latency, when they are being
used in our content-based image retrieval system built upon
Elasticsearch.</p>
        <p>
          Settings. Our image datasets consists of around half a
million images selected from Jet.com’s furniture catalog [
          <xref ref-type="bibr" rid="ref25">28</xref>
          ]. For
each image, we extract its image feature vector using the
pretrained Inception-ResNet-V2 model [
          <xref ref-type="bibr" rid="ref50">53</xref>
          ]. In specific, each
image is embedded into a vector in R1536 by taking the
output from the penultimate layer (i.e., the last average pooling
layer) of the neural network model. String tokens are produced
respectively with encoding schemes at diferent
configurations. For the element-wise rounding encoder, we select p ∈
{0, 1, 2, 3}, and m ∈ {32, 64, 128, 256}. For the subvector-wise
clustering encoder, we experiment with k ∈ {32, 64, 128, 256}
and m ∈ {32, 64, 128, 256}. Under each scenario, we index the
image feature vectors and their string tokens into a
singlenode Elustersearch cluster deployed on a Microsoft Azure
virtual machine [
          <xref ref-type="bibr" rid="ref37">40</xref>
          ] with 12 cores and 112 GiB of RAM. To
better focus on the comparison of the eficacy in encoding
scheme, only vanilla setting of Elasticsearch (one shard and
zero replica) is used in creating each index.
        </p>
        <p>
          Evaluation. To evaluate the two encoding schemes, we
randomly select 1,000 images to act as our visual queries. For
each of the query image, we find the set of its 24 nearest
neighbors in Euclidean distance, which is treated as gold
standard. We use Precision@24 [
          <xref ref-type="bibr" rid="ref46">49</xref>
          ], which measures the
overlap between the 24 images retrieved from Elasticsearch (with
r ∈ {24, 48, 96, . . . , 6144} respectively) and the gold standard,
to evaluate the retrieval eficacy of diferent encoding methods
under various settings. We also record the latency for
Elasticsearch to execute the retrieval and reranking steps in the
searching phase.
        </p>
        <p>Results. In Table 1, we report the Precision@24 and search
latency averaged over the 1,000 queries randomly selected.
Results corresponding to p ∈ {2, 3} or r ∈ {24, 48} are skipped
as they are largely outperformed by other settings.
Configurations that can achieve precision ≥ 80% and latency ≤ 0.5s
are highlighted in bold. From Table 1, we can see that the
subvector-wise encoder outperforms the element-wise one,
as for all results obtained by the element-wise encoder, we
can find a better result from the subvector-wise one in both
precision and latency. To better visualize this fact, we plot the
Pareto frontier curve over the space of precision and latency in
Figure 4. In specific, the dashed (resp. solid) curve in Figure 4
is plotted as the best average Precision@24 achieved among
all configurations we experiment for element-wise rounding
(resp. subvector-wise clustering) encoder, under diferent
latency constraints. From Figure 4, we can more clearly observe
that the subvector-wise encoder surpasses the element-wise
one. Notably, when we require the search latency to be smaller
than 0.3 second, the subvector-wise encoder is able to achieve
an average Precision@24 as 92.14%, yielding an improvement
of more than 11% over the best average Precision@24 that can
be obtained by the element-wise one.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5 FUTURE WORK</title>
      <p>
        Although our subvector-wise clustering encoder outperforms
the element-wise rounding one, it might be still restrictive to
enforce a vector to be divided into subvectors exclusively using
(3.2), which could potentially downgrade the performance of
the encoder. Our next step is to preprocess the data (e.g.,
transform the data through some linear operation x 7→ T [x ] with
T [·] learned from the data) before applying our
subvectorwise clustering encoder. We believe this flexibility will make
our encoding scheme more robust and adaptive with respect
to diferent image feature vectors extracted from various
image descriptors. Another interesting research direction is to
evaluate the performances of diferent encoding schemes in
other information retrieval contexts–e.g., neural ranking model
based textual searches [
        <xref ref-type="bibr" rid="ref38 ref47 ref5">5, 41, 50</xref>
        ], where relevances between
user-issued queries and catalog products are modeled by their
Euclidean distances in the embedding space to better match
customers’ intents with products.
      </p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGEMENT</title>
      <p>We are grateful to three anonymous reviewers for their helpful
suggestions and comments that substantially improve the
paper. We would also like to thank Eliot P. Brenner and Aliasgar
Kutiyanawala for proofreading the first draft of the paper.
[18] T. Ge, K. He, Q. Ke, and J. Sun. 2013. Optimized product quantization for
approximate nearest neighbor search. In Proceedings of CVPR. 2946–2953.
[19] C. Gennaro, G. Amato, P. Bolettieri, and P. Savino. 2010. An approach to
content-based image retrieval based on the Lucene search engine library.</p>
      <p>In Proceedings of TPDL. 55–66.
[20] Y. Gong, S. Lazebnik, A. Gordo, and F. Perronnin. 2013. Iterative
quantization: A procrustean approach to learning binary codes for large-scale image
retrieval. IEEE Transactions on Pattern Analysis and Machine Intelligence</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Aksyonof</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Introduction to Search with Sphinx: From installation to relevance tuning. "</article-title>
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          ,
          <source>Inc.".</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Andoni</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Indyk</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions</article-title>
          .
          <source>In Proceedings of FOCS. 459-468.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Learning deep architectures for AI. Foundations and trends</article-title>
          ® in
          <source>Machine Learning</source>
          <volume>2</volume>
          ,
          <issue>1</issue>
          (
          <year>2009</year>
          ),
          <fpage>1</fpage>
          -
          <lpage>127</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bialecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Muir</surname>
          </string-name>
          , G. Ingersoll, and
          <string-name>
            <given-names>L.</given-names>
            <surname>Imagination</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Apache lucene 4</article-title>
          .
          <source>In Proceedings of SIGIR workshop on open source information retrieval.</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>E. P.</given-names>
            <surname>Brenner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kutiyanawala</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Yan</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>End-to-End Neural Ranking for eCommerce Product Search</article-title>
          .
          <source>In Proceedings of SIGIR eCom'18.</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>Multi-dimensional points, coming in Apache Lucene 6.0</article-title>
          . Retrieved June 16,
          <year>2018</year>
          from https://www.elastic.co/ blog/lucene-points-
          <volume>6</volume>
          .0.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2017</year>
          .
          <article-title>Numeric and Date Ranges in Elasticsearch: Just Another Brick in the Wall</article-title>
          .
          <source>Retrieved June 16</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/blog/ numeric-and
          <article-title>-date-ranges-in-elasticsearch-just-another-brick-in-the-wall.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Full text queries</article-title>
          .
          <source>Retrieved May 01</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/guide/en/elasticsearch/reference/6.1/ full-text-queries.html.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Function score query</article-title>
          .
          <source>Retrieved May 01</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/guide/en/elasticsearch/reference/6.1/ query-dsl
          <article-title>-function-score-query</article-title>
          .html.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors. 2018.</given-names>
          </string-name>
          <string-name>
            <surname>Plugins</surname>
          </string-name>
          . Retrieved May 01,
          <year>2018</year>
          from https://www.elastic.co/guide/en/elasticsearch/reference/6.1/ modules-plugins.html.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Range query</article-title>
          .
          <source>Retrieved May 01</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/guide/en/elasticsearch/reference/6.1/ query-dsl
          <article-title>-range-query</article-title>
          .html.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors. 2018.</given-names>
          </string-name>
          <string-name>
            <surname>Rescoring</surname>
          </string-name>
          . Retrieved May 01,
          <year>2018</year>
          from https://www.elastic.co/guide/en/elasticsearch/reference/6.1/ search-request-rescore.html.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Stories from Users Like You</article-title>
          .
          <source>Retrieved May 01</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/use-cases.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Elasticsearch</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Term query</article-title>
          .
          <source>Retrieved May 01</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/guide/en/elasticsearch/reference/6.1
          <article-title>/ query-dsl-term-query</article-title>
          .html.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Lucene</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Apache Lucene library</article-title>
          .
          <source>Retrieved May 06</source>
          ,
          <year>2018</year>
          from https://lucene.apache.org.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Datta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Joshi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and J.</given-names>
            <surname>Wang</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Image retrieval: Ideas, influences, and trends of the new age</article-title>
          .
          <source>Comput. Surveys</source>
          <volume>40</volume>
          ,
          <issue>2</issue>
          (
          <year>2008</year>
          ),
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Donahue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Vinyals</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hofman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , E. Tzeng, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Darrell</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Decaf: A deep convolutional activation feature for generic visual recognition</article-title>
          .
          <source>In Proceedings of ICML. 647-655. 35</source>
          ,
          <issue>12</issue>
          (
          <year>2013</year>
          ),
          <fpage>2916</fpage>
          -
          <lpage>2929</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>I.</given-names>
            <surname>Goodfellow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Courville</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Deep learning</article-title>
          .
          <source>Vol. 1</source>
          . MIT press Cambridge.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>C.</given-names>
            <surname>Gormley</surname>
          </string-name>
          and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tong</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Elasticsearch: The Definitive Guide: A Distributed Real-Time Search</article-title>
          and
          <string-name>
            <given-names>Analytics</given-names>
            <surname>Engine. " O'Reilly Media</surname>
          </string-name>
          ,
          <source>Inc.".</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>K.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sun</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>K-means hashing: An afinity-preserving quantization method for learning binary compact codes</article-title>
          .
          <source>In Proceedings of CVPR. 2938-2945.</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J.</given-names>
            <surname>Heinly</surname>
          </string-name>
          , E. Dunn, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Frahm</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Comparative evaluation of binary features</article-title>
          .
          <source>In ECCV</source>
          .
          <volume>759</volume>
          -
          <fpage>773</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>H.</given-names>
            <surname>Jegou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Douze</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Schmid</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Product quantization for nearest neighbor search</article-title>
          .
          <source>IEEE transactions on pattern analysis and machine intelligence 33</source>
          ,
          <issue>1</issue>
          (
          <year>2011</year>
          ),
          <fpage>117</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>H.</given-names>
            <surname>Jegou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Perronnin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Douze</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sánchez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Perez</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Schmid</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Aggregating local image descriptors into compact codes</article-title>
          .
          <source>IEEE transactions on pattern analysis and machine intelligence 34</source>
          ,
          <issue>9</issue>
          (
          <year>2012</year>
          ),
          <fpage>1704</fpage>
          -
          <lpage>1716</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>H.</given-names>
            <surname>Jegou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tavenard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Douze</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Amsaleg</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Searching in one billion vectors: re-rank with source coding</article-title>
          .
          <source>In Proceedings of ICASSP. IEEE</source>
          ,
          <fpage>861</fpage>
          -
          <lpage>864</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Jet</surname>
          </string-name>
          .com.
          <year>2018</year>
          . Furniture. Retrieved May 01,
          <year>2018</year>
          from https://jet.com/ search?category=
          <fpage>18000000</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kalantidis</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Avrithis</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Locally optimized product quantization for approximate nearest neighbor search</article-title>
          .
          <source>In Proceedings of CVPR. 2321- 2328.</source>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>Nicholas</given-names>
            <surname>Knize</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Geo Capabilities in Elasticsearch</article-title>
          .
          <source>Retrieved June 16</source>
          ,
          <year>2018</year>
          from https://www.elastic.co/assets/blt827a0a9db0f2e04e/ webinar-geo-capabilities.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>H.</given-names>
            <surname>Lai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Pan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Yan</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Simultaneous feature learning and hash coding with deep neural networks</article-title>
          .
          <source>In Proceedings of CVPR. 3270- 3278.</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ranzato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Monga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Devin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Chen</surname>
          </string-name>
          , G. Corrado,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dean</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ng</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Building high-level features using large scale unsupervised learning</article-title>
          .
          <source>In Proceedings of ICML. 507-514.</source>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>W.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Mu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kumar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Chang</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Discrete graph hashing</article-title>
          .
          <source>In Advances in NIPS. 3419-3427.</source>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>M.</given-names>
            <surname>Loncaric</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Liu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Weber</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Convolutional Hashing for Automated Scene Matching</article-title>
          . arXiv preprint arXiv:
          <year>1802</year>
          .
          <volume>03101</volume>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>X.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Xie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Yang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Deep Binary Representation for Eficient Image Retrieval</article-title>
          .
          <source>Advances in Multimedia</source>
          <year>2017</year>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>M.</given-names>
            <surname>Lux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Riegler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Halvorsen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Pogorelov</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Anagnostopoulos</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>LIRE: open source visual information retrieval</article-title>
          .
          <source>In Proceedings of MMSys.</source>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>J.</given-names>
            <surname>MacQueen</surname>
          </string-name>
          .
          <year>1967</year>
          .
          <article-title>Some methods for classification and analysis of multivariate observations</article-title>
          .
          <source>In Proceedings of the fifth Berkeley symposium on mathematical statistics and probability</source>
          , Vol.
          <volume>1</volume>
          . Oakland, CA, USA,
          <fpage>281</fpage>
          -
          <lpage>297</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [38]
          <string-name>
            <surname>M. McCandless</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Hatcher</surname>
            , and
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Gospodnetic</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Lucene in action: covers Apache Lucene 3.0</article-title>
          . Manning Publications Co.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>G.</given-names>
            <surname>Mesnil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Dauphin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Glorot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rifai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Goodfellow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Lavoie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Muller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Desjardins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Warde-Farley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vincent</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Courville</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Bergstra</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Unsupervised and transfer learning challenge: a deep learning approach</article-title>
          .
          <source>In Proceedings of ICML Workshop on Unsupervised and Transfer Learning. JMLR. org</source>
          ,
          <volume>97</volume>
          -
          <fpage>111</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>Microsoft</given-names>
            <surname>Azure</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Virtual machines</article-title>
          .
          <source>Retrieved May 01</source>
          ,
          <year>2018</year>
          from https://azure.microsoft.com/en-us/services/virtual-machines/.
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>B.</given-names>
            <surname>Mitra</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Craswell</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Neural Models for Information Retrieval</article-title>
          .
          <source>arXiv preprint arXiv:1705.01509</source>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>M.</given-names>
            <surname>Oquab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bottou</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Laptev</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sivic</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Learning and transferring mid-level image representations using convolutional neural networks</article-title>
          .
          <source>In Proceedings of CVPR. 1717-1724.</source>
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>R.</given-names>
            <surname>Raina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Battle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Packer</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ng</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Self-taught learning: transfer learning from unlabeled data</article-title>
          .
          <source>In Proceedings of ICML. 759-766.</source>
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>A.</given-names>
            <surname>Razavian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Azizpour</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sullivan</surname>
          </string-name>
          , and
          <string-name>
            <surname>S. Carlsson.</surname>
          </string-name>
          <year>2014</year>
          .
          <article-title>CNN features of-the-shelf: an astounding baseline for recognition</article-title>
          .
          <source>In CVPR workshop</source>
          . 512-
          <fpage>519</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>S.</given-names>
            <surname>Robertson</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Zaragoza</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>The probabilistic relevance framework: BM25 and beyond</article-title>
          .
          <source>Foundations and Trends® in Information Retrieval 3</source>
          ,
          <issue>4</issue>
          (
          <year>2009</year>
          ),
          <fpage>333</fpage>
          -
          <lpage>389</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [46]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ruzicka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Novotny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sojka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pomikalek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Rehurek</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Flexible Similarity Search of Semantic Vectors Using Fulltext Search Engines</article-title>
          . http://ceur-ws.
          <source>org/</source>
          Vol-1923/article-01.pdf (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [47]
          <string-name>
            <given-names>J.</given-names>
            <surname>Rygl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pomikalek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rehurek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ruzicka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Novotny</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Sojka</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Semantic Vector Encoding and Similarity Search Using Fulltext Search Engines</article-title>
          .
          <source>In Proceedings of the 2nd Workshop on Representation Learning for NLP</source>
          .
          <volume>81</volume>
          -
          <fpage>90</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [48]
          <string-name>
            <given-names>G.</given-names>
            <surname>Salton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Wong</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Yang</surname>
          </string-name>
          .
          <year>1975</year>
          .
          <article-title>A vector space model for automatic indexing</article-title>
          .
          <source>Commun. ACM</source>
          <volume>18</volume>
          ,
          <issue>11</issue>
          (
          <year>1975</year>
          ),
          <fpage>613</fpage>
          -
          <lpage>620</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [49]
          <string-name>
            <given-names>H.</given-names>
            <surname>Schütze</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. D.</given-names>
            <surname>Manning</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Raghavan</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Introduction to information retrieval</article-title>
          . Vol.
          <volume>39</volume>
          . Cambridge University Press.
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [50]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Deng</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Mesnil</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>A latent semantic model with convolutional-pooling structure for information retrieval</article-title>
          .
          <source>In Proceedings of CIKM. 101-110.</source>
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [51]
          <string-name>
            <given-names>D.</given-names>
            <surname>Smiley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Pugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Parisa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mitchell</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Apache Solr enterprise search server</article-title>
          . Packt Publishing Ltd.
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [52]
          <string-name>
            <given-names>J.</given-names>
            <surname>Song</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Binary Generative Adversarial Networks for Image Retrieval</article-title>
          .
          <source>arXiv preprint arXiv:1708.04150</source>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [53]
          <string-name>
            <given-names>C.</given-names>
            <surname>Szegedy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Iofe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Vanhoucke</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Alemi</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Inception-v4, inception-resnet and the impact of residual connections on learning</article-title>
          .
          <source>In Proceedings of AAAI</source>
          .
          <fpage>4278</fpage>
          -
          <lpage>4284</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [54]
          <string-name>
            <given-names>A.</given-names>
            <surname>Torralba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fergus</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Weiss</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Small codes and large image databases for recognition</article-title>
          .
          <source>In Proceedings of CVPR. 1-8.</source>
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          [55]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kumar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Chang</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Semi-supervised hashing for scalable image retrieval</article-title>
          .
          <source>In Proceedings of CVPR. 3424-3431.</source>
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          [56]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Weiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Torralba</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Fergus</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Spectral hashing</article-title>
          .
          <source>In Advances in NIPS. 1753-1760.</source>
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          [57]
          <string-name>
            <surname>Wikipedia</surname>
            <given-names>contributors. 2018.</given-names>
          </string-name>
          <string-name>
            <surname>Elasticsearch</surname>
          </string-name>
          . Retrieved May 06,
          <year>2018</year>
          from https://en.wikipedia.org/wiki/Elasticsearch.
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          [58]
          <string-name>
            <surname>Wikipedia</surname>
            <given-names>contributors.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Tf-idf</article-title>
          .
          <source>Retrieved May 06</source>
          ,
          <year>2018</year>
          from https://en.wikipedia.org/wiki/tf-idf.
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          [59]
          <string-name>
            <given-names>J.</given-names>
            <surname>Yosinski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Clune</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Lipson</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>How transferable are features in deep neural networks</article-title>
          .
          <source>In Advances in NIPS. 3320-3328.</source>
        </mixed-citation>
      </ref>
      <ref id="ref57">
        <mixed-citation>
          [60]
          <string-name>
            <given-names>M.</given-names>
            <surname>Zeiler</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Fergus</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Visualizing and understanding convolutional networks</article-title>
          .
          <source>In Proceedings of ECCV. 818-833.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>