我有一个拥有(目前)3500万行的人名的数据库.我需要知道快速搜索这些名称的最佳方法是什么.当前系统(不是我设计的),只是将索引的名字和姓氏列用于"LIKE"查询,并使用SOUNDEX的附加选项(虽然我不确定这实际上使用了多少).性能一直是该系统的一个问题,因此目前搜索限制为200个结果(运行时间仍然太长).所以,我有几个问题:
仅供参考,我使用Fluent NHibernate进行数据访问,因此首选的方法将是首选.我目前正在使用SQL Server 2008.
编辑我想补充一点,我对解决方案非常感兴趣,这些解决方案可以解决常见拼写错误的名称,例如'smythe','smith',以及名字,例如'tomas','thomas'.
查询计划
|--Parallelism(Gather Streams)
|--Nested Loops(Inner Join, OUTER REFERENCES:([testdb].[dbo].[Test].[Id], [Expr1004]) OPTIMIZED WITH UNORDERED PREFETCH)
|--Hash Match(Inner Join, HASH:([testdb].[dbo].[Test].[Id])=([testdb].[dbo].[Test].[Id]))
| |--Bitmap(HASH:([testdb].[dbo].[Test].[Id]), DEFINE:([Bitmap1003]))
| | |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([testdb].[dbo].[Test].[Id]))
| | |--Index Seek(OBJECT:([testdb].[dbo].[Test].[IX_Test_LastName]), SEEK:([testdb].[dbo].[Test].[LastName] >= 'WHITDþ' AND [testdb].[dbo].[Test].[LastName] < 'WHITF'), WHERE:([testdb].[dbo].[Test].[LastName] like 'WHITE%') ORDERED FORWARD)
| |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([testdb].[dbo].[Test].[Id]))
| |--Index Seek(OBJECT:([testdb].[dbo].[Test].[IX_Test_FirstName]), SEEK:([testdb].[dbo].[Test].[FirstName] >= 'THOMARþ' AND [testdb].[dbo].[Test].[FirstName] < 'THOMAT'), WHERE:([testdb].[dbo].[Test].[FirstName] like 'THOMAS%' AND PROBE([Bitmap1003],[testdb].[dbo].[Test].[Id],N'[IN ROW]')) ORDERED FORWARD)
|--Clustered …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个简单的筛子函数来计算clojure中的素数.我已经看到了这个关于编写高效的筛分功能的问题,但我不是为了那点呢.现在我只想写一个非常简单(缓慢)的筛子.以下是我的想法:
(defn sieve [potentials primes]
(if-let [p (first potentials)]
(recur (filter #(not= (mod % p) 0) potentials) (conj primes p))
primes))
Run Code Online (Sandbox Code Playgroud)
对于小范围,它工作正常,但导致堆栈溢出大范围:
user=> (sieve (range 2 30) [])
[2 3 5 7 11 13 17 19 23 29]
user=> (sieve (range 2 15000) [])
java.lang.StackOverflowError (NO_SOURCE_FILE:0)
Run Code Online (Sandbox Code Playgroud)
我认为通过使用recur
这将是一个非堆栈消耗循环结构?我错过了什么?
在设置在线文件管理系统的同时,现在我已经遇到了障碍.
我正在尝试使用此修改版本的readfile将文件推送到客户端:
function readfile_chunked($filename,$retbytes=true) {
$chunksize = 1*(1024*1024); // how many bytes per chunk
$buffer = '';
$cnt =0;
// $handle = fopen($filename, 'rb');
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
if ($retbytes) {
$cnt += strlen($buffer);
}
}
$status = fclose($handle);
if ($retbytes && $status) {
return $cnt; // return num. bytes delivered like readfile() does.
}
return $status;
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试下载一个13 …
我有一个运行Tomcat的6G内存的Red Hat盒子,我正在试图弄清楚我在盒子上留下了多少内存.问题是,top&jconsole显示一个数字(大约200M),系统监视器显示不同的数字(大约2G).有人知道有什么区别吗?
我不确定这里是否发生内存泄漏,但最高内存消费者是一个tomcat进程,占用2.2G的内存.
屏幕截图如下:
添加了免费命令截图:
我对整个编程都很陌生 - 到目前为止我只有建立网站,数据库等方面的经验.
我目前有一个网站,用户可以分享他们的在线购物.
我想构建一个其他网站可以在其网站上集成的小部件.小部件将显示最近在我的网站上输入的购买,用户应该能够通过此小部件直接插入购买,而无需访问我的网站.
我的网站使用Zend Framework构建在PHP上,并使用Mysql后端.
我正在谈论的一些网站同意添加小部件,如果它非突兀的,如果他们只需要在他们的页面中插入4行javascript代码.我假设这应该像谷歌的adsense代码一样,你输入谷歌的JavaScript代码,广告开始显示.
这个想法,但我不知道如何去做 - 任何人都可以指出我正确的方向.有关如何执行此操作的任何示例或教程.
Google Adsense代码示例
<script type='text/javascript'> --></script><script type="text/javascript"><!-- google_ad_client = "pub-06xxxx453614"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; google_ad_channel = "3407467430"; google_color_border = "38B63C"; google_color_bg = "FFFFFF"; google_color_link = "0066CC"; google_color_text = "000000"; google_color_url = "0066CC"; google_ui_features = "rc:0"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
这也是一个小部件的形式 - 如何在这里使用Javascript?谢谢
我的代码是:你好!~~~
{% if user %}
<p>Logged in as {{ user.first_name }} {{ user.last_name }}.</p>
{% elif openid_user%}
<p>Hello, {{openid_user.nickname}}! Do you want to <a href="{{openid_logout_url}}">Log out?</p>
{% else %}
<p><a href="/login?redirect={{ current_url }}">google Log in</a>.</p>
<p><a href="/twitter">twitter Log in</a>.</p>
<p><a href="/facebook">facebook Log in</a>.</p>
<p><a href="{{openid_login_url}}">openid Log in</a>.</p>
<iframe src="/_openid/login?continue=/"></iframe>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
错误是:
TemplateSyntaxError: Invalid block tag: 'elif'
Run Code Online (Sandbox Code Playgroud)
webapp没有'else if'吗?
谢谢
如果整数数组中有任何重复的元素,我必须递归地找到它v
.该方法必须具有以下签名:
boolean hasRepeatedElements(int[] v)
Run Code Online (Sandbox Code Playgroud)
我无法看到任何递归方式,无需为此方法定义另一个方法或至少另一个重载(例如,该方法需要使用后面的元素).首先,我考虑检查当前v
是否有一些元素等于第一个元素,然后创建一个包含L-1
元素等的新数组,但这看起来效率很低.这是唯一的方法吗?
我在这里错过了什么吗?
我正在为拥有大量收藏(超过100,000首歌曲)的爱好者写一个媒体播放器,我的主要目标之一是搜索速度.我想允许用户根据以下因素对其整个音乐集进行Google式搜索:
我存储这些数据并搜索数据的最佳方式是什么?目前,我将每个轨道存储在一个对象中,并迭代这些对象的数组,根据给定的搜索文本检查每个变量的字符串匹配.
虽然我的搜索无效,但我遇到了问题,因为它始终是一个短语搜索,我不知道如何使它更模糊.像SQLlite这样的内部数据库会比这更快吗?关于如何构建这个系统的任何想法?
我还需要播放列表持久性,这样当他们关闭应用程序并打开应用程序时,他们会立即加载相同的播放列表.我应该如何存储播放列表信息,以便在应用程序启动时可以快速加载?目前我是JSON编码整个播放列表,将其存储在一个文本文件中,并在运行时将其读入ListView,但它已经超过20,000个曲目.
谢谢!
更新2:
要在网页中添加swf,Swf Object 2.0是最常用的方法,它是一个javascript库,因此flash将取决于JavaScript的可用性.
因此,如果禁用javascript,则无法播放Flash.
但Adobe声称
Flash内容达到了99%的互联网观看者
http://www.adobe.com/products/player_census/flashplayer/
即使iphone,ipad和blackberry不支持Flash也是如此吗?
如果它是真的,那么如果我们可以通过FLASH和JavaScript实现同样的事情,那么我们应该选择闪存(如果我们不考虑iphone,ipad和黑莓)?
如果我们还需要iphone,ipad和blackberry支持我们的网站/网络应用程序,那么我们是否应该永远不使用闪存?
更新:
Firefox的插件
截至目前, Noscript已经下载了 67,446,249次
但Flashblock 只有8,723,436次
是否意味着人们比Flash更不喜欢JavaScript?
c# ×2
java ×2
recursion ×2
algorithm ×1
calculator ×1
clojure ×1
download ×1
flash ×1
if-statement ×1
javascript ×1
lucene.net ×1
memory ×1
memory-leaks ×1
php ×1
primes ×1
python ×1
search ×1
sql-server ×1
tomcat ×1
widget ×1
wpf ×1