Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search with exact: true doesn't work as intended #866

Open
zeroliu opened this issue Dec 28, 2024 · 14 comments
Open

Search with exact: true doesn't work as intended #866

zeroliu opened this issue Dec 28, 2024 · 14 comments

Comments

@zeroliu
Copy link

zeroliu commented Dec 28, 2024

Describe the bug

When I search with exact: true, documents with partially matching terms are also returned.

To Reproduce

https://codesandbox.io/p/sandbox/lvy7mc

const db = create({
schema: {
path: "string",
title: "string",
},
});

insert(db, { path: "First Note.md", title: "First Note" });
insert(db, { path: "Second Note.md", title: "Second Note" });

const noExact = search(db, {
term: "first",
properties: ["path"],
}); // 1 result OK
const withExact = search(db, {
term: "first",
properties: ["path"],
exact: true,
}); // 1 result NOT OK

console.log("noExact path", noExact);
console.log("withExact path", withExact);

Expected behavior

Calling search with exact: true should only return documents with terms that exactly matches.

Environment Info

@orama/orama 3.0.4

Affected areas

Search

Additional context

No response

@logancyang
Copy link

logancyang commented Jan 10, 2025

Anybody looking at this issue? Any pointer would be appreciated @micheleriva

@micheleriva
Copy link
Member

Hi @logancyang and @zeroliu, we are currently experiencing a temporary slowdown in managing this activity. We will keep you updated.

@micheleriva
Copy link
Member

I'll try to speed this up:

/bounty 150

@algora-pbc
Copy link

💎 oramasearch is offering a $150 bounty for this issue
👉 Got a pull request resolving this? Claim the bounty by adding @algora-pbc /claim #866 in the PR body and joining algora.io

@akv2011
Copy link

akv2011 commented Jan 13, 2025

/attempt #866

2 similar comments
@Erodri6z
Copy link

Erodri6z commented Feb 4, 2025

/attempt #866

@ram-amoncar
Copy link

/attempt #866

@micheleriva
Copy link
Member

@matijagaspar is this fixed with your last PR?

@joybro
Copy link

joybro commented Mar 8, 2025

I'm experiencing this issue with the latest version (3.1.1).

@Mobarak786
Copy link

I understand the problem. It happens because the adject match in search matching with "First" But not with "Note.md" And this is the behavior of "orama" as it tokenise the name when an space occours. Thats why you are getting the error.

@zeroliu Could you assign to me. I can fix it.
/assign #866

@zeroliu
Copy link
Author

zeroliu commented Mar 20, 2025

Thanks for looking into it @Mobarak786 . I don't have the permission to assign the ticket though. Maybe a repo admin can help

@micheleriva
Copy link
Member

Hi @Mobarak786 , @zeroliu , thanks for your help! You don't need to get the issue assigned, just send a PR and if it gets merged, we will pay the bounty. Thanks again!

@Mobarak786
Copy link

Mobarak786 commented Mar 24, 2025

Exact match

The exact property finds all the document with an exact match of the term property.

const searchResult = search(movieDB, {
  term: "Chris",
  properties: ["director"],
  exact: true,
});

We are now searching for all the documents that contain exactly the word Chris in the director property.

📌 Without the exact property, for example, the term Christopher Nolan would be returned as well, as it contains the word Chris.

So in my opinion there is no bug in the issue. The issue is with the example input , the creator of the issue uses.

📍issue shoud be closed. Don't need a PR

@Sambit003
Copy link

@micheleriva is this issue still open? if. then I will start working on it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants