- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:当搜索与搜索查询相似的词多次出现的文本时,它们比具有一次完全匹配的文本获得更高的排名。
示例:假设搜索查询是“生产力”,那么“有机产品的生产”的排名高于“劳动力” productivity” 只是因为它包含两个相似的词,尽管没有完全匹配的词。
问题:对完全匹配的记录进行优先排序的最佳方法是什么?
这是我的 pg_scope:
pg_search_scope :search,
:against => {
:title => 'A',
:search_string => 'B'
},
:using => {
:tsearch => {
:dictionary => 'english',
:any_word => 'true'
}
}
谢谢。
最佳答案
如果您可以操纵搜索查询,请查看 cover density ranking (ts_rank_cd()
instead of ts_rank()
) and its normalization
parameter .
SELECT v, ts_rank(to_tsvector('english', v), to_tsquery('english', 'productivity')) rank,
ts_rank_cd(to_tsvector('english', v), to_tsquery('english', 'productivity')) rankcd,
ts_rank_cd(to_tsvector('english', v), to_tsquery('english', 'productivity'), 4) rankcd4,
ts_rank_cd(to_tsvector('english', v), to_tsquery('english', 'productivity'), 6) rankcd6
FROM (
VALUES ('production of organic products'::TEXT),
('labour productivity'),
('labour productivity with more unrelated words'),
('labour productivity with more unrelated words and again production'),
('production of productivity'),
('product production')
) d(v)
但是,我不确定如何使用自定义规范化
设置pg_search_scope
。
关于ruby-on-rails - pg_search : how to prioritize exact word matches?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23980204/
minmax: If max 50%那么我们将至少有50% (我们的最小边界)并且我们不会超过 70vmin 如果70vmin 在上面的示例中,我们将宽度固定为 50%,因此从技术上讲它不会更大。
如何优先(告诉编译器)使用“函数接收引用”(#B)而不是“函数接收值”(#A)? #include using namespace std; class Heavy{/* ...... */}; /
问题:当搜索与搜索查询相似的词多次出现的文本时,它们比具有一次完全匹配的文本获得更高的排名。 示例:假设搜索查询是“生产力”,那么“有机产品的生产”的排名高于“劳动力” productivity” 只
在 Google 页面速度中,我收到一条关于“优先显示内容”的评论,这似乎是最近对页面速度算法的更改。为了尝试理解这个问题,我在 HTML 中创建了一个只有一张图片的简单页面(在我的域下),我仍然看到
我正在编写 PHP 代码并使用一些非常有用的扩展: PHP Formatter仅用于格式化代码 PHP Intelephense用于提供智能感知 在这种情况下,它们都是格式化提供程序,因此您可以右键单
我想知道是否有一种微妙的方法可以以某种方式对事件监听器进行优先级排序,即更改它们的调用顺序,而不更改它们的添加顺序。片段: var listener1 = function () {
我正在开发使用 celery 执行后台任务的 django 应用程序。这些任务解析用户上传,进行一些 api 调用,然后将结果写入 postgres 数据库。 Celery 有 20 名 worker
现在我正在使用 Gevent,我想问两个问题: 有没有办法执行特定的任务,这将 从不异步执行 (而不是在每个任务中使用锁) 有没有办法到优先在 Gevent 中生成任务?就像一组将以低优先级生成的任务
有没有办法让 Window 的任务调度程序知道我的工作线程没有主线程那么紧急,以便它可以选择先中断它们?我遇到了一些麻烦,因为我的主线程经常被抢占,这减慢了它向其他线程委派任务的能力。 最佳答案 看看
我目前正在创建一个由来自 mysql 查询的值组成的排序方法。 下面是数组的简要 View : Array ( [0] => Array (
我是一名优秀的程序员,十分优秀!