我正在postgresql中为我当前的项目设计一个全文搜索功能.到目前为止,它与ispell/myspell词典一起正常工作.现在我需要添加对中文,日文和阿拉伯文搜索的支持.我从哪里开始?据我所知,这些语言没有可用的模板或词典.它会与pg_catalog.simple配置一起使用吗?
在Matters Computational中我发现了这个有趣的线性搜索实现(它实际上是我的Java实现;-)):
public static int linearSearch(int[] a, int key) {
int high = a.length - 1;
int tmp = a[high];
// put a sentinel at the end of the array
a[high] = key;
int i = 0;
while (a[i] != key) {
i++;
}
// restore original value
a[high] = tmp;
if (i == high && key != tmp) {
return NOT_CONTAINED;
}
return i;
}
Run Code Online (Sandbox Code Playgroud)
它基本上使用了一个sentinel,它是搜索的值,因此您总是可以找到该值,而不必检查数组边界.最后一个元素存储在temp变量中,然后将sentinel放在最后一个位置.当找到该值时(记住,它总是由于sentinel而找到),原始元素将被恢复,并且如果它代表最后一个索引并且与搜索的值不相等则检查索引.如果是这种情况,则返回-1(NOT_CONTAINED),否则返回索引.
虽然我发现这个实现非常聪明,但我想知道它是否真的有用.对于小型数组,它似乎总是较慢,而对于大型数组,当找不到该值时,它似乎更快.有任何想法吗?
编辑
最初的实现是用C++编写的,所以这可能会有所不同.
我得到一个错误说
解析错误:语法错误,第6行的E:\ PortableApps\xampp\htdocs\SN\AC\ACclass.php中的意外T_PRIVATE
在尝试运行我的脚本时.我是PHP的新手,想知道是否有人可以指出我的错误.这是该部分的代码.
<?php
class ac
{
public function authentication()
{
private $plain_username = $_POST['username'];
private $md5_password = md5($_POST['password']);
$ac = new ac();
Run Code Online (Sandbox Code Playgroud) 有没有人有任何建议如何写这样的应用程序?或者也许知道一些很好的教程?我想使用System.Net.PeerToPeer命名空间,但我能找到的关于它的所有内容都是MSDN,我无法读到它而不会生气.或者使用"老派"TCP/IP会更有效率?
我将欣赏每一条建议.每个示例代码我将用金色淋浴;)
请不要把我送回谷歌,因为我已经搜索了很长时间才有用 - 可能不准确,但时间不多了,我真的需要一些帮助.
[编辑]
关于什么深色库?有人用过吗?
我最近遇到过这个话题,无法理解为什么需要它们.
你能解释为什么我应该在我的项目中使用它们以及它们如何能够缓解我的生活.
例子很棒,从那里我可以了解更多这个话题.
我正在学习如何在模块中使用class_eval(我对class_eval有点熟悉)并在resource_controller中遇到了这个有用的类.他们在那里有这样的事情:
class_eval <<-"end_eval", __FILE__, __LINE__
def #{block_accessor}(*args, &block)
unless args.empty? && block.nil?
args.push block if block_given?
@#{block_accessor} = [args].flatten
end
@#{block_accessor}
end
end_eval
Run Code Online (Sandbox Code Playgroud)
在这种情况下做什么__FILE__和__LINE__做什么?我知道__FILE__引用当前文件,但整件事究竟做了什么?真的不知道如何搜索:).
我有一个int*的rgb数据,宽度,高度和scanlinestride,我想创建一个NSImage.
我环顾四周,发现我需要使用NSData?
这样做的理想方式是什么?
在Android应用程序中,我使用TabView,其中一个选项卡显示WebView.但是在网页加载之前页面是空白的.如何在页面加载之前显示进度条?它不能在标题栏中,因为它被标签主机隐藏.
好的,伙计们,刚刚开始对 mySQL 中的一些表进行分区。有几种不同的方法来描述这一点,但我找不到更实用的方法。- 每种分区方式对哪种类型的数据效果最好?
或者这真的不重要吗?
参考: http: //dev.mysql.com/tech-resources/articles/performance-partitioning.html
说我有这样的事情
public void run(){
Thread behaviourThread = new Thread(abstractBehaviours[i]);
behaviourThread.start();
}
Run Code Online (Sandbox Code Playgroud)
我想等到abstractBehaviours [i] run方法已经完成或运行5000毫秒.我怎么做?behaviourThread.join(5000)似乎没有这样做afaik(我的代码有问题,我已经把它归结为那个).
所有抽象的abstractBehaviour类当然都是Runnable.我不想在每个run方法中实现它,因为它看起来很难看并且有很多不同的行为,我宁愿在调用/执行线程中使用它并且只执行一次.
解决方案?第一次做这样的线程.谢谢!
编辑:因此中断解决方案将是理想的(需要对AbstractBehaviour实现进行最小的更改).但我需要线程停止,如果它已经完成或已经过了5000毫秒,所以类似下面的东西将无法工作,因为线程可能在父线程中的while循环之前完成.合理?任何解决这个问题的方法,我都很乐意从明显启动线程的线程中做到这一点.
long startTime = System.currentTimeMillis();
behaviourThread.start();
while(!System.currentTimeMilis - startTime < 5000);
behaviourThread.interrupt();
try {
behaviourThread.join();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
编辑:nevermind我看到有一个Thread.isAlive()方法,我认为都解决了
.net ×1
algorithm ×1
android ×1
c# ×1
cocoa ×1
java ×1
macos ×1
mysql ×1
objective-c ×1
p2p ×1
partitioning ×1
php ×1
postgresql ×1
progress-bar ×1
ruby ×1
unicode ×1
vb.net ×1
webview ×1