小编Dav*_*iac的帖子

SQL - 两个不同长度的字符串之间的相似性

我有一个SQL Server产品表,每个产品都有一个在我们网站上公开的描述.我想防止,或者至少警告我们的用户何时,描述与其他产品的描述太相似.每个产品的描述长度都会有很大差异.

我想查询包含相互之间的重复/相似段落/文本块的描述的产品.即字符串A有一堆独特的内容,但与字符串B共享一个相似/相同的段落.但是,我不确定哪种相似度算法最好用:

模糊散列的声音听起来像我正在寻找的,但我不只是寻找具有微妙差异的重复内容.我也在寻找在独特的文本块中注入细微差异的重复内容.我不知道如何在SQL中实现模糊哈希.SOUNDEX()DIFFERENCE()似乎使用模糊散列,但对我的用例来说非常不精确.

理想情况下,相似性SQL函数会很快,但我可以将缓存的相似度值存储在另一个表中,并安排作业偶尔更新.

实现此目的的最佳算法/ SQL(或CLR集成)实现是什么?

sql-server asp.net algorithm clr similarity

7
推荐指数
1
解决办法
8863
查看次数

是否可以在没有IIS的情况下使用Windows集成身份验证?

我有几个节点应用程序的nginx反向代理.我们的用户都在Windows域控制的网络上.我知道我可以使用express-ntlmpassport-windowsauth来提示用户输入他们的登录凭据,但这是非集成的身份验证.

是否可以在没有IIS(或Apache)的node.js(或nginx)中直接使用集成的auth(Windows认证用户可以绕过凭证提示)?如果是这样,怎么样?

我想我们可以用IIS代替nginx作为反向代理,但如果可以,我想避免这样做.

authentication iis nginx node.js

7
推荐指数
1
解决办法
7836
查看次数

空间索引减慢了查询速度

背景

我有一个表格包含代表客户区域的POLYGONS/MULTIPOLYGONS:

  • 该表包含大约8,000行
  • 大约90%的多边形是圆形
  • 其余的多边形代表一个或多个州,省或其他地理区域.这些形状的原始多边形数据是从美国人口普查数据中导入的.
  • 该表在主键上具有空间索引和聚簇索引.未对默认的SQL Server 2008 R2设置进行任何更改.每个对象16个单元格,所有级别中等.

这是一个简化的查询,将重现我遇到的问题:

DECLARE @point GEOGRAPHY = GEOGRAPHY::STGeomFromText('POINT (-76.992188 39.639538)', 4326)

SELECT terr_offc_id
FROM tbl_office_territories
WHERE terr_territory.STIntersects(@point) = 1
Run Code Online (Sandbox Code Playgroud)

看起来像一个简单,直接的查询需要12或13秒才能执行,对于这样一个简单的查询来说,这似乎是一个非常复杂的执行计划.

执行计划

在我的研究中,有几个消息来源建议在查询中添加索引提示,以确保查询优化器正确使用空间索引.添加WITH(INDEX(idx_terr_territory))没有任何效果,并且从执行计划中可以清楚地看出,无论提示如何,它都引用了我的索引.

减少多边形

从美国人口普查数据导入的领土多边形似乎有可能是不必要的复杂,因此我创建了第二列,并测试了具有不同程度公差的缩小多边形(带有Reduce()方法).对新列运行与上面相同的查询会产生以下结果:

  • 没有减少:12649ms
  • 减少10:7194ms
  • 减少20:6077ms
  • 减少30:4793ms
  • 减少40:4397ms
  • 减少50:4290ms

显然朝着正确的方向前进,但精确度下降似乎是一个不优雅的解决方案.这不是索引应该是什么?对于这样的基本查询,执行计划似乎仍然很复杂.

空间索引

出于好奇,我删除了空间索引,并被结果震惊:

  1. 没有索引时查询速度更快(sub 3 sec w/no reduction,sub 1 sec with reduction tolerance> = 30)
  2. 执行计划看起来很远,更简单:

执行计划没有索引

我的问题

  1. 为什么我的空间索引减慢了速度?
  2. 为了加快查询速度,减少多边形复杂度真的很有必要吗?降低精度可能会导致问题,并且似乎不会很好地扩展.

其他说明

  • 已应用SQL Server 2008 R2 Service Pack 1
  • 进一步的研究建议在存储过程中运行查询.试过这个,似乎没有任何改变.

sql-server-2008-r2 spatial-index sqlgeography

6
推荐指数
1
解决办法
961
查看次数

修改底层form.reset()值

我正在使用$('form-selector').get(0).reset()将表单值重置为其原始页面加载状态.

编辑后,表单将通过提交$.ajax(),我将在我们的服务器上有新的"默认"值.表单元素仍将存在于dom中,用户可以再次提交以进行更新.我想要"默认"(重置值)来反映我们服务器上的内容(忽略任何其他外部更新).是否可以在 没有页面刷新的情况下更新将每个表单元素更改为的基础值form.reset()

跨浏览器支持会很好,但由于这是一个内部应用程序,谷歌Chrome只是足够的.

HTML

<form>
    <input type="text" value="foo" name="bar" />
    <input type="submit" value="Submit" />
    <Input type="reset" value="Reset" />
</form>
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT

$(function(){
    $('form').submit(function() {
        // Omitting code that sends form values to the server

        // TODO: update underlying form.reset()
        // values to what's currently in each
        // form element.

        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

UPDATE

确认!我没有提到我正在寻找处理所有表单元素类型的东西.即input[type=text], input[type=radio], input[type=checkbox], select, textarea.

如果它也可以处理HTML5表单元素,那将特别棒!即input[type=date], input[type=number], input[email], input[url], input[type=range], input[type=color]等等.

对困惑感到抱歉.

html javascript forms jquery reset

5
推荐指数
1
解决办法
2492
查看次数

双击禁用选择框以启用

我想在双击表单时启用所有表单元素,并简化代码如下:

<form>
    <input type="text" name="foo" disabled />
    <select name="bar" disabled>
        <option>a</option>
        <option>b</option>
    </select>
</form>

<script type="text/javascript">
    $(function() {
        $('form').dblclick(function() {
            $(this).find('input,select').removeAttr('disabled');
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

但是,将鼠标悬停在禁用的<select>元素上时,不会触发表单双击事件.不幸的是,"readonly"属性不适用于<select>元素.

这适用于内部应用程序,我只需要在Google Chrome上运行.

更新:

我在这方面得到了很多答案,我想我需要修改我的问题以帮助指导这个过程...... W3C规范中关于残疾人形式元素的说法是什么?...例如,似乎双击事件不会触发<input>Firefox中禁用的元素.也许它在Chrome中闪现的事实是一个错误/错位,我不能指望总是在那里.

目前,在表单上方的绝对定位的包装元素上观察双击事件似乎是最好的选择...即使我讨厌添加额外的包装元素.

html jquery mouseevent

5
推荐指数
1
解决办法
4580
查看次数