我需要根据以下格式的字符串创建一个 tsquery:
something-smth-somthing-etc-etc
Run Code Online (Sandbox Code Playgroud)
调用to_tsquery('something-smth-somthing-etc-etc')返回:
'something-smth-somthing-etc-etc' & 'someth' & 'smth' & 'somth' & 'etc' & 'etc'
Run Code Online (Sandbox Code Playgroud)
显然,字符串经历了标记化、词干提取等。但在我们的例子中,我们进行 FTS 的列已经包含由单个词位组成的 tsvector 'something-smth-somthing-etc-etc':。
查询
select * from sometable where searchee @@ to_tsquery('something-smth-somthing-etc-etc')没有返回结果。
我如何调用to_tsquery,这样它就不会分析提供的字符串并创建单个词素查询?
或者我在这里错过了更重要的东西?
我拥有的
我有一个具有以下方法的 api 控制器(ASP.NET Core MVC):
[HttpPost]
[Route("delete")]
public Task<ActionResult> SomeAction(Guid[] ids, UserToken userToken, CancellationToken cancellationToken)
{
....
}
Run Code Online (Sandbox Code Playgroud)
我有一个自定义模型绑定器和绑定器提供程序:
public class UserTokenBinderProvider : IModelBinderProvider
{
public IModelBinder GetBinder(ModelBinderProviderContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
if (context.Metadata.ModelType == typeof(UserToken))
{
return new BinderTypeModelBinder(typeof(UserTokenBinder));
}
return null;
}
}
public class UserTokenBinder: IModelBinder
{
public async Task BindModelAsync(ModelBindingContext bindingContext)
{
var token = await bindingContext.ActionContext.HttpContext.User.ToUserTokenAsync(CancellationToken.None);
bindingContext.Result = ModelBindingResult.Success(token ?? UserToken.UnidentifiedUser);
}
}
Run Code Online (Sandbox Code Playgroud)
将活页夹提供程序添加到服务:
services.AddMvc(options =>
{ …Run Code Online (Sandbox Code Playgroud) 如何以编程方式在C#代码中获取当前项目的路径?
我有任何预处理器指令吗?还是任何宏?
注意: 我不需要当前执行程序集的路径,而是需要从中编译此程序集的项目路径.
注意(2) - 我想要实现的目标: 我有几个被编译为嵌入式资源的文件.我在运行时加载并使用它们.我想创建一个"调试"模式,在该模式下,文件从磁盘上的原始位置加载,而不是从资源流加载.这使我能够快速编辑文件以进行测试,而无需重新编译程序集.由于程序集被复制到编译它的项目之外的其他位置,因此在"调试"模式下,我无法使用相对路径加载文件.
我需要从一个给定变形的中心到另一个给定变形的中心绘制一个箭头变形。
任何帮助,将不胜感激。