我想为网站实现搜索功能(假设它类似于SO).我不想使用谷歌搜索这样的东西.
我的问题是:
我该如何实现?
我知道有两种方法:
谁能告诉我哪条路走?优缺点都有什么?
更好,有没有更好的方法来做到这一点?
我想在Vim中进行以下搜索
(reverse-i-search)`':
Run Code Online (Sandbox Code Playgroud)
输入上一个命令的单词,即可获得完整命令.
我知道Vim中的时间历史工具
q:
Run Code Online (Sandbox Code Playgroud)
但是,它不像反向搜索那样有用.
你怎么能在Vim和终端中进行类似的反向搜索?
要在数据库中搜索任何列"foo_desc"和"bar_desc"中包含关键字"foo"和"bar"的行,我会执行以下操作:
SELECT *
FROM t1
WHERE MATCH (t1.foo_desc, t2.bar_desc) AGAINST ('+foo* +bar*' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)
要么
SELECT *
FROM t1
WHERE (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%foo%') AND (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%bar%')
Run Code Online (Sandbox Code Playgroud)
我预计最后一个查询的缺点是性能.
好处是LIKE查询找到'xxfoo',其中MATCH AGAINST没有.
哪个是首选的还是有更好的解决方案?
我希望有人可以帮助我解决我在特定项目中使用Eclipse中的java搜索功能的问题.
在一个特定项目上使用java搜索时,我收到一条错误消息Class file name must end with .class(请参阅下面的堆栈跟踪).这似乎并没有发生在所有项目上,只是一个特定项目,所以也许我应该尝试重建一些东西?
我已经尝试过Project -> Clean...并关闭Eclipse,删除所有构建的类文件并重启Eclipse无济于事.
我在谷歌上找到的唯一一个问题是http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx,但不幸的是他的解决方案(关闭,删除类文件,重新启动)对我不起作用.
如果有人可以提出尝试的建议,或者我可以收集任何可能有助于跟踪它的信息,我会非常感谢指针.
Version: 3.4.0
Build id: I20080617-2000
Run Code Online (Sandbox Code Playgroud)
还发现了这个帖子 - http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - 这表明当项目名称包含句点时可能会出现同样的问题.不幸的是,在我的设置中并非如此,所以我仍然卡住了.
Caused by: java.lang.IllegalArgumentException: Class file name must end with .class
at org.eclipse.jdt.internal.core.PackageFragment.getClassFile(PackageFragment.java:182)
at org.eclipse.jdt.internal.core.util.HandleFactory.createOpenable(HandleFactory.java:109)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1177)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:223)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:506)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:551)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:129)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.initializeReferences(RenameTypeProcessor.java:594)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.doCheckFinalConditions(RenameTypeProcessor.java:522)
at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:45)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:225)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:160)
at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:77)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4650)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:92)
at …Run Code Online (Sandbox Code Playgroud) 对于正则表达式,搜索的语法是什么,但不包括?有点像:
Haystack:
The quick red fox jumped over the lazy brown dog
Expression:
.*?quick -> and then everything until it hits the letter "z" but do not include z
Run Code Online (Sandbox Code Playgroud) 以此代码为例.假装它是一个HTML /文本文件,如果我想知道出现的总次数,echo我怎么能用bash做呢?
new_user()
{
echo "Preparing to add a new user..."
sleep 2
adduser # run the adduser program
}
echo "1. Add user"
echo "2. Exit"
echo "Enter your choice: "
read choice
case $choice in
1) new_user # call the new_user() function
;;
*) exit
;;
esac
Run Code Online (Sandbox Code Playgroud) 我有一个包含字符串的文件usrbin.我想搜索usrbin并替换它/usr/bin/.
我试过:%s/usrbin/usr/bin/g,但它显示错误E488: Trailing characters.
如何在搜索和替换中包含正斜杠?
有没有办法将Visual Studio中的搜索(通过"查找和替换"对话框)限制为指定的文件夹或文件类型?
当我使用VIM的增量搜索选项时,我经常搜索并在得到第一个结果后(它会突出显示)我使用该/键跳转到下一个结果.
但:
/使VIM跳转到下一个结果,但不会突出显示它.我想知道是否有更有效的方法使用增量搜索在结果之间跳转并突出显示它们.