Taxonomy support in ES

Hi all,

First let me say thank you to everyone who has contributed to this project
to make it what it is.

We are intergrating ES into our native XML database so we can combine
structured XQuery search with metadata and faceted search.

One thing that we really need to be able to do is add taxonomy support to
our searches.

Consider the following taxonomic structure:

-"Medical professionals"
-"Nurse"
-"Nurse practitioner"
-"Doctor"
-"Oncologist"
-"Pediatrician"
-"Cardiologist"
-"Surgon"

We would like to enable ES to use this taxonomy in a few ways:

Keyword expansion - For a given search term, also search on terms which the
taxonomy defines as child terms. For instance, someone might search for
'doctor', and the system would also understand to include "oncologist,
pediatrician, surgon" etc.

Keyword reduction - The reverse of keyword expansion, someone might enter
oncologist, and the system might include "doctor" (This is a version of
stemming)

I am also hoping there are other cool things I haven't thought of.

I am wondering if this functionality would be best implemented pre-search,
in our system, or if ES has capabilities to do this natvely?

Thanks!

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Hi Casey

Consider the following taxonomic structure:

-"Medical professionals"
-"Nurse"
-"Nurse practitioner"
-"Doctor"
-"Oncologist"
-"Pediatrician"
-"Cardiologist"
-"Surgon"

We would like to enable ES to use this taxonomy in a few ways:

Keyword expansion - For a given search term, also search on terms
which the taxonomy defines as child terms. For instance, someone might
search for 'doctor', and the system would also understand to include
"oncologist, pediatrician, surgon" etc.

I'd set the field to be {type: "string", index: "not_analyzed"} then
index values as, eg:

[ "Medical professionals", "Doctor", "Oncologist" ]

Then you can filter on { "term": { "tag": "Oncologist" }}
or { "term: { "tag": "Doctor" }}

clint

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.