address-index-api | Address Index is an application which resolves addresses | Parser library

 by   ONSdigital Scala Version: v1.0.0 License: MIT

kandi X-RAY | address-index-api Summary

kandi X-RAY | address-index-api Summary

address-index-api is a Scala library typically used in Utilities, Parser applications. address-index-api has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Address Index is a Play Framework (2.8.8) application which matches addresses. The system works via large Elasticsearch (7.9.3) indices build primarily from AddressBase Premium data. The input can be a complete address (from any source), and the system uses advanced data science techniques to determine the most likely matching AddressBase entries with UPRNs (Unique Property Reference Numbers). Addresses can be matched one at a time or in batches. Additional functions exist for postcode searching and partial address string matching for typeaheads. Plans to deploy the application as a service available to all members of the Public Sector Mapping Agreement have been put on hold for the duration of the Census test. The support team are awaiting a decision on the future of this.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              address-index-api has a low active ecosystem.
              It has 32 star(s) with 11 fork(s). There are 15 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 3 open issues and 3 have been closed. On average issues are closed in 7 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of address-index-api is v1.0.0

            kandi-Quality Quality

              address-index-api has no bugs reported.

            kandi-Security Security

              address-index-api has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              address-index-api is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              address-index-api releases are not available. You will need to build from source code and install.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of address-index-api
            Get all kandi verified functions for this library.

            address-index-api Key Features

            No Key Features are available at this moment for address-index-api.

            address-index-api Examples and Code Snippets

            No Code Snippets are available at this moment for address-index-api.

            Community Discussions

            Trending Discussions on address-index-api

            QUESTION

            Elastic gives inconsistent results under stress
            Asked 2017-Feb-22 at 10:44

            Our ES is fairly slow, we did not optimize it (and the query) yet, but according to this link, request rejection from Elastic is a form of a feedback that asks to slow down and adapt the size of the bulk.

            We built a form of a back pressure where the size of a blocking bulk (a list of individual requests sent at the same time, we do not use MSearch yet) depends on how many requests were rejected in the previous bulk. We wait for current bulk to finish before starting a new one. Obviously all rejected requests are re-injected into the request-queue (in a form of a data needed to construct the query). For example if our Elastic can handle 500 simultaneous requests and we send 600, some of them will be rejected and the new size will be reduced to 480 (20% off).

            What we found out was that ES returns different results for the previously rejected requests. For example it may return something like the expected result, but with an offset of 2. We also have missing results where an address should have 1 result, but has none due to this bug.

            If the bulk size is less than the threshold that ES can handle, everything goes as expected and we get expected results.

            It doesn't look like it's the library's (elastic4s) problem.

            Elastic configuration: 2 nodes with 5 shards each

            Per node: 2 CPU, 32 GB ram, 16 GB heap. Everything else is default

            I couldn't find any information on the internet, did anyone have this problem? What was the solution?

            What we tried so far:

            • Thread.sleep between bulks as the link above suggests.

            • Removing cache on query level as well as removing it from the index.

            • Trying same index on a different (slower) hardware.

            • Verified that it's not a race-condition (in our code) problem.

            Update:

            What the query like.

            Thread pool for search: "search" : { "type" : "fixed", "min" : 4, "max" : 4, "queue_size" : 1000 },

            2nd UPDATE:

            We also tried setting preference to our query (thinking that it was a problem with shards): .preference(Preference.Primary) with no positive result (they were even more random than before). Two consecutive runs with this setting give different "random" results, so this is not consistent.

            ...

            ANSWER

            Answered 2017-Feb-22 at 10:44

            The reason for inconsistent results was that Elastic replies with Success if at least 1 shard had a result. So basically if only one of our 5 shards succeeded, the request would return a successful result with only 20% of the data.

            As seen here and here, this is not a bug, this is a feature. Elastic prefers to return some (albeit, inconsistent) result instead of not returning anything.

            The solution to this problem is either to use only one shard or to treat more than 0 failed shards as a general request failure using following object that each ES response has:

            "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 },

            Source https://stackoverflow.com/questions/42346540

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install address-index-api

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/ONSdigital/address-index-api.git

          • CLI

            gh repo clone ONSdigital/address-index-api

          • sshUrl

            git@github.com:ONSdigital/address-index-api.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Parser Libraries

            marked

            by markedjs

            swc

            by swc-project

            es6tutorial

            by ruanyf

            PHP-Parser

            by nikic

            Try Top Libraries by ONSdigital

            sdg-indicators

            by ONSdigitalHTML

            eq-survey-runner

            by ONSdigitalPython

            design-system

            by ONSdigitalJavaScript

            sdg-data

            by ONSdigitalPython

            address-index-data

            by ONSdigitalScala