Terms aggregation across two fields in ElasticsearchSolr vs. ElasticSearchElasticsearch Terms or Cardinality Aggregation - Order by number of distinct valuesHow to get an Elasticsearch aggregation with multiple fieldsElasticSearch - is aggregation only perform on term?Elasticsearch aggregate by multiple fields separatelyAggregate over last documents in elasticsearchElasticsearch nested significant terms aggregation with background filterElasticsearch - Filter by aggregation valueExclude empty unselected aggregations from elasticsearchCount occurrences in field of terms intersecting another aggregation
How do we properly manage transitions within a descriptive section?
why "American-born", not "America-born"?
Do seaplanes need to get clearance for takeoff?
How to counter "I don't like your tone" in a work conversation?
Are there historical examples of audiences drawn to a work that was "so bad it's good"?
Germany rejected my entry to Schengen countries
Are CTRL+C and <esc> the same?
Is being an extrovert a necessary condition to be a manager?
How to prove the emptiness of intersection of two context free languages is undecidable?
Simple Arithmetic Puzzle 7. Or is it?
Gambler's Fallacy Dice
Does the Aboleth have expertise in History and Perception?
Bash - Execute two commands and get exit status 1 if first fails
Does George B Sperry logo on fold case for photos indicate photographer or case manufacturer?
Filter a file list against an integer array?
Why was Houston selected as the location for the Manned Spacecraft Center?
Why "strap-on" boosters, and how do other people say it?
Do 'destroy' effects count as damage?
Hotel booking: Why is Agoda much cheaper than booking.com?
Why was Harry at the Weasleys' at the beginning of Goblet of Fire but at the Dursleys' after?
Is my company merging branches wrong?
Is there a realtime, uncut video of Saturn V ignition through tower clear?
Warped chessboard
Farthing / Riding
Terms aggregation across two fields in Elasticsearch
Solr vs. ElasticSearchElasticsearch Terms or Cardinality Aggregation - Order by number of distinct valuesHow to get an Elasticsearch aggregation with multiple fieldsElasticSearch - is aggregation only perform on term?Elasticsearch aggregate by multiple fields separatelyAggregate over last documents in elasticsearchElasticsearch nested significant terms aggregation with background filterElasticsearch - Filter by aggregation valueExclude empty unselected aggregations from elasticsearchCount occurrences in field of terms intersecting another aggregation
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'm not sure what I want to do is possible. I have data that looks like this:
"Actor1Name": "PERSON",
"Actor2Name": "OTHERPERSON"
I use copy_to in order to populate a secondary field, ActorNames, with both values.
I am trying to build a typeahead capability where a user can start to type a name and it will populate with the top hits for that prefix. I want it to search across both actor fields. The only problem is when I search across ActorNames, I get both values even if only one matches. That means if I'm searching for prefix O that I will get both OTHERPERSON (desired) and PERSON (undesired) in my results based on the above document.
My current solution is to run 2 aggregations and combine them client side, but is it possible to do this purely in ES?
Current query:
"query":
"prefix":
"ActorNames": "O"
,
"aggs":
"actor1":
"filter":
"prefix":
"Actor1Name": "O"
,
"aggs":
"actor1":
"terms":
"field": "Actor1Name",
,
"actor2":
"filter":
"prefix":
"Actor2Name": "O"
,
"aggs":
"actor2":
"terms":
"field": "Actor2Name",
elasticsearch elasticsearch-6
add a comment |
I'm not sure what I want to do is possible. I have data that looks like this:
"Actor1Name": "PERSON",
"Actor2Name": "OTHERPERSON"
I use copy_to in order to populate a secondary field, ActorNames, with both values.
I am trying to build a typeahead capability where a user can start to type a name and it will populate with the top hits for that prefix. I want it to search across both actor fields. The only problem is when I search across ActorNames, I get both values even if only one matches. That means if I'm searching for prefix O that I will get both OTHERPERSON (desired) and PERSON (undesired) in my results based on the above document.
My current solution is to run 2 aggregations and combine them client side, but is it possible to do this purely in ES?
Current query:
"query":
"prefix":
"ActorNames": "O"
,
"aggs":
"actor1":
"filter":
"prefix":
"Actor1Name": "O"
,
"aggs":
"actor1":
"terms":
"field": "Actor1Name",
,
"actor2":
"filter":
"prefix":
"Actor2Name": "O"
,
"aggs":
"actor2":
"terms":
"field": "Actor2Name",
elasticsearch elasticsearch-6
add a comment |
I'm not sure what I want to do is possible. I have data that looks like this:
"Actor1Name": "PERSON",
"Actor2Name": "OTHERPERSON"
I use copy_to in order to populate a secondary field, ActorNames, with both values.
I am trying to build a typeahead capability where a user can start to type a name and it will populate with the top hits for that prefix. I want it to search across both actor fields. The only problem is when I search across ActorNames, I get both values even if only one matches. That means if I'm searching for prefix O that I will get both OTHERPERSON (desired) and PERSON (undesired) in my results based on the above document.
My current solution is to run 2 aggregations and combine them client side, but is it possible to do this purely in ES?
Current query:
"query":
"prefix":
"ActorNames": "O"
,
"aggs":
"actor1":
"filter":
"prefix":
"Actor1Name": "O"
,
"aggs":
"actor1":
"terms":
"field": "Actor1Name",
,
"actor2":
"filter":
"prefix":
"Actor2Name": "O"
,
"aggs":
"actor2":
"terms":
"field": "Actor2Name",
elasticsearch elasticsearch-6
I'm not sure what I want to do is possible. I have data that looks like this:
"Actor1Name": "PERSON",
"Actor2Name": "OTHERPERSON"
I use copy_to in order to populate a secondary field, ActorNames, with both values.
I am trying to build a typeahead capability where a user can start to type a name and it will populate with the top hits for that prefix. I want it to search across both actor fields. The only problem is when I search across ActorNames, I get both values even if only one matches. That means if I'm searching for prefix O that I will get both OTHERPERSON (desired) and PERSON (undesired) in my results based on the above document.
My current solution is to run 2 aggregations and combine them client side, but is it possible to do this purely in ES?
Current query:
"query":
"prefix":
"ActorNames": "O"
,
"aggs":
"actor1":
"filter":
"prefix":
"Actor1Name": "O"
,
"aggs":
"actor1":
"terms":
"field": "Actor1Name",
,
"actor2":
"filter":
"prefix":
"Actor2Name": "O"
,
"aggs":
"actor2":
"terms":
"field": "Actor2Name",
elasticsearch elasticsearch-6
elasticsearch elasticsearch-6
asked Mar 23 at 19:27
DerekDerek
805625
805625
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If you want to check the prefix condition on both the fields, why not use ANDING of prefix on both fields? Like:
GET /my_index/_search
"query":
"bool":
"must": [
"prefix":
"Actor1Name": "O"
,
"prefix":
"Actor2Name": "O"
]
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55317546%2fterms-aggregation-across-two-fields-in-elasticsearch%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
If you want to check the prefix condition on both the fields, why not use ANDING of prefix on both fields? Like:
GET /my_index/_search
"query":
"bool":
"must": [
"prefix":
"Actor1Name": "O"
,
"prefix":
"Actor2Name": "O"
]
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
add a comment |
If you want to check the prefix condition on both the fields, why not use ANDING of prefix on both fields? Like:
GET /my_index/_search
"query":
"bool":
"must": [
"prefix":
"Actor1Name": "O"
,
"prefix":
"Actor2Name": "O"
]
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
add a comment |
If you want to check the prefix condition on both the fields, why not use ANDING of prefix on both fields? Like:
GET /my_index/_search
"query":
"bool":
"must": [
"prefix":
"Actor1Name": "O"
,
"prefix":
"Actor2Name": "O"
]
If you want to check the prefix condition on both the fields, why not use ANDING of prefix on both fields? Like:
GET /my_index/_search
"query":
"bool":
"must": [
"prefix":
"Actor1Name": "O"
,
"prefix":
"Actor2Name": "O"
]
answered Mar 23 at 21:32
Yashasvi Raj PantYashasvi Raj Pant
3101316
3101316
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
add a comment |
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
Because I want to match documents that have either actor starting with an O but I only want to include in the aggregation those actors that start with an O.
– Derek
Mar 24 at 3:32
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55317546%2fterms-aggregation-across-two-fields-in-elasticsearch%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown