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

Add support for extended search commands #151

Merged
merged 30 commits into from
Jul 5, 2023
Merged
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
510c931
start working on Adding Support for FT.SPELLCHECK
shacharPash Jun 18, 2023
b630973
tests
shacharPash Jun 18, 2023
f4966c8
Add tests
shacharPash Jun 19, 2023
c6415a9
Add Bounds tests
shacharPash Jun 19, 2023
43ae14d
Chagne to RedisServerException
shacharPash Jun 19, 2023
d4d87b9
fixes
shacharPash Jun 19, 2023
561cf35
add comands to interface
shacharPash Jun 19, 2023
f5df688
using SearchArgs
shacharPash Jun 19, 2023
af6f1de
Commands implement
shacharPash Jun 19, 2023
059e1fa
delete unused literals
shacharPash Jun 19, 2023
c178b60
TestAddAndGetSuggestion
shacharPash Jun 19, 2023
ee6ec25
Add SugGetWithScoresAsync
shacharPash Jun 20, 2023
fbcf756
assync tests
shacharPash Jun 20, 2023
34ddd77
Support FT.PROFILE
shacharPash Jun 25, 2023
e2d8c50
fix parser
shacharPash Jun 25, 2023
64ee31f
fix command builder
shacharPash Jun 25, 2023
258a618
test + fixes
shacharPash Jun 25, 2023
8c43229
add tests
shacharPash Jun 26, 2023
4f27a11
add TestProfileCommandBuilder
shacharPash Jun 26, 2023
36644ef
Merge branch 'master' into ftSearchCommands
shacharPash Jun 27, 2023
3fe326d
space
shacharPash Jun 27, 2023
498560e
Try make Tran&pipe instances not interface type
shacharPash Jun 29, 2023
fbe99bf
Add ft.create without FTCreateParams
shacharPash Jun 29, 2023
e38814b
tests
shacharPash Jun 29, 2023
2031536
Merge branch 'master' into ftSearchCommands
shacharPash Jul 2, 2023
ea22d3c
fix } missing
shacharPash Jul 2, 2023
20c79b3
Delete 'I' from I<module>Commands intances in the examples
shacharPash Jul 3, 2023
6c96b6e
change to Uppercase
shacharPash Jul 5, 2023
8d0cd45
fixex after vlad's review
shacharPash Jul 5, 2023
dd50d99
Merge branch 'master' into ftSearchCommands
shacharPash Jul 5, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Commands implement
  • Loading branch information
shacharPash committed Jun 19, 2023
commit af6f1de7cefa5a22f61d86fc70b4f1cf904f7e42
14 changes: 9 additions & 5 deletions src/NRedisStack/Search/Literals/Commands.cs
Original file line number Diff line number Diff line change
@@ -9,13 +9,13 @@ internal class FT
public const string ALIASUPDATE = "FT.ALIASUPDATE";
public const string ALTER = "FT.ALTER";
public const string CONFIG = "FT.CONFIG";
public const string CONFIG_GET = "FT.CONFIG GET";
public const string CONFIG_HELP = "FT.CONFIG HELP";
public const string CONFIG_SET = "FT.CONFIG SET";
// public const string CONFIG_GET = "FT.CONFIG GET";
// public const string CONFIG_HELP = "FT.CONFIG HELP";
// public const string CONFIG_SET = "FT.CONFIG SET";
public const string CREATE = "FT.CREATE";
public const string CURSOR = "FT.CURSOR";
public const string CURSOR_DEL = "FT.CURSOR DEL";
public const string CURSOR_READ = "FT.CURSOR READ";
// public const string CURSOR_DEL = "FT.CURSOR DEL";
// public const string CURSOR_READ = "FT.CURSOR READ";
public const string DICTADD = "FT.DICTADD";
public const string DICTDEL = "FT.DICTDEL";
public const string DICTDUMP = "FT.DICTDUMP";
@@ -26,6 +26,10 @@ internal class FT
public const string PROFILE = "FT.PROFILE";
public const string SEARCH = "FT.SEARCH";
public const string SPELLCHECK = "FT.SPELLCHECK";
public const string SUGADD = "FT.SUGADD";
public const string SUGDEL = "FT.SUGDEL";
public const string SUGGET = "FT.SUGGET";
public const string SUGLEN = "FT.SUGLEN";
public const string SYNDUMP = "FT.SYNDUMP";
public const string SYNUPDATE = "FT.SYNUPDATE";
public const string TAGVALS = "FT.TAGVALS";
28 changes: 28 additions & 0 deletions src/NRedisStack/Search/SearchCommands.cs
Original file line number Diff line number Diff line change
@@ -174,6 +174,34 @@ public Dictionary<string, Dictionary<string, double>> SpellCheck(string indexNam
return _db.Execute(SearchCommandBuilder.SpellCheck(indexName, query, spellCheckParams)).ToFtSpellCheckResult();
}

/// <inheritdoc/>
public long SugAdd(string key, string str, double score, bool increment = false, string? payload = null)
{
return _db.Execute(SearchCommandBuilder.SugAdd(key, str, score, increment, payload)).ToLong();
}


/// <inheritdoc/>
public bool SugDel(string key, string str)
{
return _db.Execute(SearchCommandBuilder.SugDel(key, str)).ToString() == "1";
}


/// <inheritdoc/>
public List<string> SugGet(string key, string prefix, bool fuzzy = false, bool withScores = false, bool withPayloads = false, int? max = null)
{
return _db.Execute(SearchCommandBuilder.SugGet(key, prefix, fuzzy, withScores, withPayloads, max)).ToStringList();
}


/// <inheritdoc/>
public long SugLen(string key)
{
return _db.Execute(SearchCommandBuilder.SugLen(key)).ToLong();
}


/// <inheritdoc/>
public Dictionary<string, List<string>> SynDump(string indexName)
{
30 changes: 30 additions & 0 deletions src/NRedisStack/Search/SearchCommandsAsync.cs
Original file line number Diff line number Diff line change
@@ -166,6 +166,36 @@ public async Task<Dictionary<string, Dictionary<string, double>>> SpellCheckAsyn
return (await _db.ExecuteAsync(SearchCommandBuilder.SpellCheck(indexName, query, spellCheckParams))).ToFtSpellCheckResult();
}

/// <inheritdoc/>
public async Task<long> SugAddAsync(string key, string str, double score, bool increment = false, string? payload = null)
{
return (await _db.ExecuteAsync(SearchCommandBuilder.SugAdd(key, str, score, increment, payload))).ToLong();
}


/// <inheritdoc/>
public async Task<bool> SugDelAsync(string key, string str)
{
return (await _db.ExecuteAsync(SearchCommandBuilder.SugDel(key, str))).ToString() == "1";

}


/// <inheritdoc/>
public async Task<List<string>> SugGetAsync(string key, string prefix, bool fuzzy = false, bool withScores = false, bool withPayloads = false, int? max = null)
{
return (await _db.ExecuteAsync(SearchCommandBuilder.SugGet(key, prefix, fuzzy, withScores, withPayloads, max))).ToStringList();

}


/// <inheritdoc/>
public async Task<long> SugLenAsync(string key)
{
return (await _db.ExecuteAsync(SearchCommandBuilder.SugLen(key))).ToLong();

}

/// <inheritdoc/>
public async Task<Dictionary<string, List<string>>> SynDumpAsync(string indexName)
{