Is Elastic Search recommended if attribute getting search is not a huge text document?
$begingroup$
We are currently developing a system with MEAN stack with Mongodb at backend. We have employees name, and Ids in our system and our client wants to get pretty good (Read: Google Like) search in our system to search for employees' records. He needs our system to recommend employees even if he has misspelled the name, etc.
One of the suggestions from our development lead was that we should use elastic search but from what I have seen, elastic search is preferred especially in scenarios where we are searching in a large text documents. I am having a feeling that using elastic search in our case will only increase the overhead as the attributes getting search in our case just names, emails or ids, etc.
Currently, our system only uses some basic regrex but I believe, we can improve our search by putting in some effort and without moving towards elastic search (though the development lead feels that we will only be Reinventing the wheel and we should use technologies that do this stuff for us.)
So, I wanted some guidance (Suggestions) on whether to move towards elastic search or should we stick with our current resources to work on a more optimized search than what we have right now?
search mongodb search-engine
$endgroup$
bumped to the homepage by Community♦ 10 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
$begingroup$
We are currently developing a system with MEAN stack with Mongodb at backend. We have employees name, and Ids in our system and our client wants to get pretty good (Read: Google Like) search in our system to search for employees' records. He needs our system to recommend employees even if he has misspelled the name, etc.
One of the suggestions from our development lead was that we should use elastic search but from what I have seen, elastic search is preferred especially in scenarios where we are searching in a large text documents. I am having a feeling that using elastic search in our case will only increase the overhead as the attributes getting search in our case just names, emails or ids, etc.
Currently, our system only uses some basic regrex but I believe, we can improve our search by putting in some effort and without moving towards elastic search (though the development lead feels that we will only be Reinventing the wheel and we should use technologies that do this stuff for us.)
So, I wanted some guidance (Suggestions) on whether to move towards elastic search or should we stick with our current resources to work on a more optimized search than what we have right now?
search mongodb search-engine
$endgroup$
bumped to the homepage by Community♦ 10 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
$begingroup$
We are currently developing a system with MEAN stack with Mongodb at backend. We have employees name, and Ids in our system and our client wants to get pretty good (Read: Google Like) search in our system to search for employees' records. He needs our system to recommend employees even if he has misspelled the name, etc.
One of the suggestions from our development lead was that we should use elastic search but from what I have seen, elastic search is preferred especially in scenarios where we are searching in a large text documents. I am having a feeling that using elastic search in our case will only increase the overhead as the attributes getting search in our case just names, emails or ids, etc.
Currently, our system only uses some basic regrex but I believe, we can improve our search by putting in some effort and without moving towards elastic search (though the development lead feels that we will only be Reinventing the wheel and we should use technologies that do this stuff for us.)
So, I wanted some guidance (Suggestions) on whether to move towards elastic search or should we stick with our current resources to work on a more optimized search than what we have right now?
search mongodb search-engine
$endgroup$
We are currently developing a system with MEAN stack with Mongodb at backend. We have employees name, and Ids in our system and our client wants to get pretty good (Read: Google Like) search in our system to search for employees' records. He needs our system to recommend employees even if he has misspelled the name, etc.
One of the suggestions from our development lead was that we should use elastic search but from what I have seen, elastic search is preferred especially in scenarios where we are searching in a large text documents. I am having a feeling that using elastic search in our case will only increase the overhead as the attributes getting search in our case just names, emails or ids, etc.
Currently, our system only uses some basic regrex but I believe, we can improve our search by putting in some effort and without moving towards elastic search (though the development lead feels that we will only be Reinventing the wheel and we should use technologies that do this stuff for us.)
So, I wanted some guidance (Suggestions) on whether to move towards elastic search or should we stick with our current resources to work on a more optimized search than what we have right now?
search mongodb search-engine
search mongodb search-engine
asked Oct 3 '18 at 6:54
user3422929user3422929
83
83
bumped to the homepage by Community♦ 10 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 10 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
As you mentioned you are searching just names, emails or ids, etc which is not large text.
So consider a case where you have 6 documents/records having names as below then you can understand better whether how much the large text could matter.
- Rohit kumar Bhatnagar
- Shilpa Shinde
- Manoj kumar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If user comes and perform a search for Rohit Bhatnagar, then using the regex you will be showing results in two ways:
Case I: Where regex is strict match
- Rohit Bhatnagar Kandaswamy
- Rohit Bhatnagar
Case II: When regex is relax
- Rohit kumar Bhatnagar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If we examine case Ist, you are missing two things relaxation(Record 1 & 5 will be missed) and in ranking exact match should come on top that might be more relevant.
In case 2, we relaxed but still exact match is below in ranking
So if need a relevant search then yes you can use a search engine. You could also tweak like whether you need the record 5 or not because if you see that might looks irrelevant so you can control like how many words should be in between to consider a document match. If we say consider 1 word in between then record 5 will be eliminated from results.
Other than search relevance, you can horizontal scale your search if QPS is high. You could also use machine learning techniques(learn to rank), also you could apply synonyms, stemming etc. There are still many other benefits join, streaming, sharding, etc which you could learn from the documentation
Solr: http://lucene.apache.org/solr/guide/7_6/
ES: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
If above mentioned is required or in near Future then you can use use ElasticSearch or Solr as search engine otherwise you should be good with the current system.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "557"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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%2fdatascience.stackexchange.com%2fquestions%2f39091%2fis-elastic-search-recommended-if-attribute-getting-search-is-not-a-huge-text-doc%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
$begingroup$
As you mentioned you are searching just names, emails or ids, etc which is not large text.
So consider a case where you have 6 documents/records having names as below then you can understand better whether how much the large text could matter.
- Rohit kumar Bhatnagar
- Shilpa Shinde
- Manoj kumar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If user comes and perform a search for Rohit Bhatnagar, then using the regex you will be showing results in two ways:
Case I: Where regex is strict match
- Rohit Bhatnagar Kandaswamy
- Rohit Bhatnagar
Case II: When regex is relax
- Rohit kumar Bhatnagar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If we examine case Ist, you are missing two things relaxation(Record 1 & 5 will be missed) and in ranking exact match should come on top that might be more relevant.
In case 2, we relaxed but still exact match is below in ranking
So if need a relevant search then yes you can use a search engine. You could also tweak like whether you need the record 5 or not because if you see that might looks irrelevant so you can control like how many words should be in between to consider a document match. If we say consider 1 word in between then record 5 will be eliminated from results.
Other than search relevance, you can horizontal scale your search if QPS is high. You could also use machine learning techniques(learn to rank), also you could apply synonyms, stemming etc. There are still many other benefits join, streaming, sharding, etc which you could learn from the documentation
Solr: http://lucene.apache.org/solr/guide/7_6/
ES: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
If above mentioned is required or in near Future then you can use use ElasticSearch or Solr as search engine otherwise you should be good with the current system.
$endgroup$
add a comment |
$begingroup$
As you mentioned you are searching just names, emails or ids, etc which is not large text.
So consider a case where you have 6 documents/records having names as below then you can understand better whether how much the large text could matter.
- Rohit kumar Bhatnagar
- Shilpa Shinde
- Manoj kumar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If user comes and perform a search for Rohit Bhatnagar, then using the regex you will be showing results in two ways:
Case I: Where regex is strict match
- Rohit Bhatnagar Kandaswamy
- Rohit Bhatnagar
Case II: When regex is relax
- Rohit kumar Bhatnagar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If we examine case Ist, you are missing two things relaxation(Record 1 & 5 will be missed) and in ranking exact match should come on top that might be more relevant.
In case 2, we relaxed but still exact match is below in ranking
So if need a relevant search then yes you can use a search engine. You could also tweak like whether you need the record 5 or not because if you see that might looks irrelevant so you can control like how many words should be in between to consider a document match. If we say consider 1 word in between then record 5 will be eliminated from results.
Other than search relevance, you can horizontal scale your search if QPS is high. You could also use machine learning techniques(learn to rank), also you could apply synonyms, stemming etc. There are still many other benefits join, streaming, sharding, etc which you could learn from the documentation
Solr: http://lucene.apache.org/solr/guide/7_6/
ES: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
If above mentioned is required or in near Future then you can use use ElasticSearch or Solr as search engine otherwise you should be good with the current system.
$endgroup$
add a comment |
$begingroup$
As you mentioned you are searching just names, emails or ids, etc which is not large text.
So consider a case where you have 6 documents/records having names as below then you can understand better whether how much the large text could matter.
- Rohit kumar Bhatnagar
- Shilpa Shinde
- Manoj kumar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If user comes and perform a search for Rohit Bhatnagar, then using the regex you will be showing results in two ways:
Case I: Where regex is strict match
- Rohit Bhatnagar Kandaswamy
- Rohit Bhatnagar
Case II: When regex is relax
- Rohit kumar Bhatnagar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If we examine case Ist, you are missing two things relaxation(Record 1 & 5 will be missed) and in ranking exact match should come on top that might be more relevant.
In case 2, we relaxed but still exact match is below in ranking
So if need a relevant search then yes you can use a search engine. You could also tweak like whether you need the record 5 or not because if you see that might looks irrelevant so you can control like how many words should be in between to consider a document match. If we say consider 1 word in between then record 5 will be eliminated from results.
Other than search relevance, you can horizontal scale your search if QPS is high. You could also use machine learning techniques(learn to rank), also you could apply synonyms, stemming etc. There are still many other benefits join, streaming, sharding, etc which you could learn from the documentation
Solr: http://lucene.apache.org/solr/guide/7_6/
ES: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
If above mentioned is required or in near Future then you can use use ElasticSearch or Solr as search engine otherwise you should be good with the current system.
$endgroup$
As you mentioned you are searching just names, emails or ids, etc which is not large text.
So consider a case where you have 6 documents/records having names as below then you can understand better whether how much the large text could matter.
- Rohit kumar Bhatnagar
- Shilpa Shinde
- Manoj kumar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If user comes and perform a search for Rohit Bhatnagar, then using the regex you will be showing results in two ways:
Case I: Where regex is strict match
- Rohit Bhatnagar Kandaswamy
- Rohit Bhatnagar
Case II: When regex is relax
- Rohit kumar Bhatnagar
- Rohit Bhatnagar Kandaswamy
- Rohit kumar shindey Bhatnagar
- Rohit Bhatnagar
If we examine case Ist, you are missing two things relaxation(Record 1 & 5 will be missed) and in ranking exact match should come on top that might be more relevant.
In case 2, we relaxed but still exact match is below in ranking
So if need a relevant search then yes you can use a search engine. You could also tweak like whether you need the record 5 or not because if you see that might looks irrelevant so you can control like how many words should be in between to consider a document match. If we say consider 1 word in between then record 5 will be eliminated from results.
Other than search relevance, you can horizontal scale your search if QPS is high. You could also use machine learning techniques(learn to rank), also you could apply synonyms, stemming etc. There are still many other benefits join, streaming, sharding, etc which you could learn from the documentation
Solr: http://lucene.apache.org/solr/guide/7_6/
ES: https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
If above mentioned is required or in near Future then you can use use ElasticSearch or Solr as search engine otherwise you should be good with the current system.
answered Dec 30 '18 at 4:32
Aman TandonAman Tandon
1011
1011
add a comment |
add a comment |
Thanks for contributing an answer to Data Science Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fdatascience.stackexchange.com%2fquestions%2f39091%2fis-elastic-search-recommended-if-attribute-getting-search-is-not-a-huge-text-doc%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