Synonyms Editor API
Table of Contents
API Objective: Update a synonyms file.
See Synonyms Files for an overview and examples of how to specify a set of synonyms.
Examples
Managing synonym file states
List all available synonyms files along with its READY / NOT_READY statuses
curl '/collections/logs/synonyms' [ { "path" : "synonyms.txt", "state" : "NOT_READY" } ]
Changing the synonym file’s state to READY opens all the synonyms browsing/editing APIs
`curl -XPUT -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt' -d '{"state":"READY"}'`
Check editing READY / NOT_READY status for a single synonym file
curl '/collections/logs/synonyms/synonyms.txt' { "path" : "synonyms.txt", "state" : "READY" }
Managing synonym file entries
List all entries in a synonyms file
curl '/collections/logs/synonyms/synonyms.txt/items' { "count" : 8, "items" : [ { "id" : "37488777-a668-49d8-a3fa-bc81a95a8d96", "mapping" : "aaafoo => aaabar", "enabled" : true, "type" : "EXPLICIT" } ... }, { "id" : "d68f2a35-93d3-41a0-8b10-4768bd4619e8", "mapping" : "MB,mib,megabyte,megabytes", "enabled" : true, "type" : "EQUIVALENT" } ...
Add new entry to a synonyms file
POST will return items with all of its data, including the ID and modified timestamp.
Also note, the type property is read-only and is returned based on ⇒ and not , mapping.
|
curl -XPOST -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt/items' -d ' { "mapping": "term1, term2", "category": "cat1", "enabled": "false" }' { "id" : "01cd53f7-1941-499e-ba5e-fb35ec6bd20c", "mapping" : "term1, term2", "category" : "cat1", "modified" : "2015-11-03T01:30:21.530Z", "enabled" : false, "type" : "EQUIVALENT" }
Update an entry in a synonyms file
curl -XPUT -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt/items/01cd53f7-1941-499e-ba5e-fb35ec6bd20c' -d ' { "mapping": "term1, term2, term3", "category" : "cat1", "enabled": "true" }'
Delete an entry in a synonyms file
curl -XDELETE '/collections/logs/synonyms/synonyms.txt/items/58f94a0e-473d-4719-b87c-d9908c84c89b'
Search, filter, or sort synonyms
Fusion supports Solr query language, so you can use it to refine your search in the following ways:
|
curl '/collections/logs/synonyms/synonyms.txt/items?q=category:cat1' { "count" : 1, "items" : [ { "id" : "01cd53f7-1941-499e-ba5e-fb35ec6bd20c", "mapping" : "term1, term2, term3", "category" : "cat1", "modified" : "2015-11-03T01:33:58.132Z", "enabled" : true, "type" : "EQUIVALENT" } ] }
Get term suggestions from synonyms or categories for autocomplete/autosuggest purposes
-
Get suggestions for categories
curl '/collections/logs/synonyms/synonyms.txt/suggestions?field=category&q=ca' [ "cat1" ]
-
Get suggestions for terms
curl '/collections/logs/synonyms/synonyms.txt/suggestions?field=mapping&q=te' [ "term1", "term2", "television", "televisions", "term3" ]
-
Get suggestions for both terms and categories
curl '/collections/logs/synonyms/synonyms.txt/suggestions?q=c' [ "cat1", "cccbar", "cccbaz", "cccfoo" ]
Committing and flushing
Determine whether a commit or flush is required
curl '/collections/logs/synonyms/synonyms.txt' { "path" : "synonyms.txt", "state" : "NOT_SAVED" }
Flush or commit changes
curl -XPUT -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt' -d '{"state":"READY"}'
Importing and exporting
Export synonyms into a csv file
curl -v -H 'Accept: text/csv' '/collections/test/synonyms/synonyms.txt/items' ... < HTTP/1.1 200 OK < Set-Cookie: id=81e42c0c-bb71-43a4-ae79-39a832f2f3ab;HttpOnly;Path=/api < Content-Type: text/csv ... id,mapping,category,enabled,modified,user,type "f52a08c5-6a32-4ff5-8603-2540ef9d7899","aaafoo => aaabar",,true,,,EXPLICIT "da061429-37a0-439a-8117-2e2691d4de1a","bbbfoo => bbbfoo bbbbar",,true,,,EXPLICIT "d1260556-eb2d-4fb2-83b0-f124b82a3c88","cccfoo => cccbar cccbaz",,true,,,EXPLICIT "4c6955d7-1f1c-4b7a-92a2-de46fad310d0","fooaaa,baraaa,bazaaa",,true,,,EQUIVALENT "a61a74db-41a0-4103-8738-111ae507bfdd","GB,gib,gigabyte,gigabytes",,true,,,EQUIVALENT "e54f3477-7838-4b09-b048-415e1baeeb30","MB,mib,megabyte,megabytes",,true,,,EQUIVALENT "ebf9e483-80c5-4bcf-b4f2-f0d59c14ef87","Television, Televisions, TV, TVs",,true,,,EQUIVALENT "e9e32949-751d-4461-897f-3be04be3575b","pixima => pixma",,true,,,EXPLICIT
Import synonyms from csv file
curl -v '/collections/test/synonyms/synonyms.txt/items' -H 'Content-type: text/csv' -X POST -d 'id,mapping,category,enabled,modified,user,type "f52a08c5-6a32-4ff5-8603-2540ef9d7899","aaafoo => aaabar",,true,,,EXPLICIT ' ... > Content-type: text/csv ... < HTTP/1.1 204 No Content