我一直在开发一个投资组合管理工具的内部网站.有很多文本数据,公司名称等.我对一些搜索引擎能够快速回复查询的印象非常深刻,"你的意思是:xxxx".
我需要能够智能地进行用户查询并不仅响应原始搜索结果,还要回答"你的意思是?" 当有极有可能的替代答案等时作出回应
[我正在开发ASP.NET(VB - 不要反对我!)]
更新:好的,如果没有数百万"无偿用户",我怎么能模仿这个?
你如何在很多jar文件中找到特定的类名?
(寻找实际的类名,而不是引用它的类.)
我想在Mongo DB中的特定字段启用文本搜索.我想在python( - > pymongo)中实现这个搜索.当我按照互联网上的说明操作时:
db.foo.ensure_index(('field_i_want_to_index', 'text'), name="search_index")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Traceback (most recent call last):
File "CVE_search.py", line 8, in <module>
db.foo.ensure_index(('field_i_want_to_index', 'text'), name="search_index")
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 1599, in ensure_index
return self.create_index(key_or_list, cache_for, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 1466, in create_index
index_doc = helpers._index_document(keys)
File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 100, in _index_document
for (key, value) in index_list:
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
在pymongo中创建索引有不同/更好的方法吗?
我想看到所有TODO评论,只有我写的并且存在于当前代码库中,这是git托管的.
到目前为止我所做的是打印我在完整的git历史记录中创建或修改的所有TODO注释:git log -p --author="My name" -S TODO | grep "\+.*TODO"
但是这个工具链列出了所有写过的TODO评论,甚至是那些我已经解决并因此从代码中再次删除的评论.
有没有一个工具可以逐行搜索当前的代码库,检查它是否包含"TODO",如果这行是由我创作然后打印这些行?
如何使用谷歌浏览器搜索网页的源文件(包括所有javascript文件)中的文本?
如果存在Chrome插件,或者告诉我如何列出网页包含的所有javascript文件.
谷歌浏览器有一个开发工具,可用于查看源文件并在我指出的特定文件中搜索,但如果网页包含,文件?要快速搜索,请制作插件!
嗨,我正在使用猫鼬来搜索我的收藏中的人物.
/*Person model*/
{
name: {
first: String,
last: String
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想搜索有查询的人:
let regex = new RegExp(QUERY,'i');
Person.find({
$or: [
{'name.first': regex},
{'name.last': regex}
]
}).exec(function(err,persons){
console.log(persons);
});
Run Code Online (Sandbox Code Playgroud)
如果我搜索约翰,我会得到结果(如果我搜索Jo,则为事件).但如果我搜索John Doe,我显然没有得到任何结果.
如果我将QUERY更改为John | Doe,我会得到结果,但它会返回所有在姓氏或名字中都有John或Doe的人.
接下来就是尝试使用mongoose textsearch:
首先将字段添加到索引:
PersonSchema.index({
name: {
first: 'text',
last: 'text'
}
},{
name: 'Personsearch index',
weights: {
name: {
first : 10,
last: 10
}
}
});
Run Code Online (Sandbox Code Playgroud)
然后修改Person查询:
Person.find({
$text …Run Code Online (Sandbox Code Playgroud) 早在2012年,我正在构建个人在线应用程序,并且实际上想要重新发明轮子,因为我天生好奇,出于学习目的并提高我的算法和架构技能.我可以使用apache lucene和其他人,但正如我所提到的,我决定建立自己的迷你搜索引擎.
问:除了使用elasticsearch,lucene等可用服务之外,真的没有办法增强这种架构吗?
我正在开发一个Web应用程序,用户在其中搜索特定的标题(例如:book x,book y等),这些数据位于关系数据库(MySQL)中.
我遵循的原则是,从db中获取的每条记录都缓存在内存中,以便应用程序对数据库的调用较少.
我开发了自己的迷你搜索引擎,具有以下架构:
这是它的工作原理:
系统工作正常,但我有两个主要问题,我找不到一个好的解决方案(过去一个月一直在尝试):
第一个问题:
如果你检查点(B),情况没有查询"历史"被发现,它必须使用像%%声明:此过程变得时间当查询数据库(而不是一个或匹配许多纪录消耗二):
第二个问题:
应用程序允许用户添加自己的新记录,这些记录可以立即被登录到应用程序的其他用户使用.
然而,为了实现这一点,必须更新反向索引映射和表"查询",以便在任何旧查询与新单词匹配的情况下.例如,如果添加了新记录"woodX",旧的查询"wood"仍会映射到它.所以为了重新勾选查询"wood"到这个新记录,这就是我现在正在做的事情:
- >现在,如果远程用户搜索"wood",它将从内存中获取:wood和woodX
这里的问题也是时间消耗.将所有查询历史(在表查询中)与新添加的单词匹配需要花费大量时间(匹配查询越多,时间越多).然后内存更新也需要很多时间.
什么,我想这样做来解决这个问题的时候,就是返回了预期的结果,用户第一,然后让应用程序发布一个AJAX所要求的数据呼叫,实现所有这些更新任务.但我不确定这是一种不良做法还是一种不专业的做事方式?
所以在过去的一个月(多一点)我试着想到这个架构的最佳优化/修改/更新,但我不是文档检索领域的专家(实际上它是我的第一个迷你搜索引擎).
我将非常感谢能够实现这种架构的任何反馈或指导.
提前致谢.
PS:
我目前正在使用str.indexOf("word")字符串中查找单词.但问题在于它还会返回其他词语的部分内容.
例如:"我去了foobar并订购了foo." 我想要单词"foo"的第一个索引,而不是foobar中的foo.
我无法搜索"foo",因为有时它可能会跟随一个句号或逗号(任何非字母数字字符).
我在带有变音符号的数据库中有阿拉伯语文本.当我输入阿拉伯语搜索某些字符串时,它没有变音符号,它肯定与数据库字符串不匹配.它在没有变音符号的情况下正常工作.有没有办法在文本上运行它与变音符号???
假设它们是预加载的股票代码,键入文本框.我正在寻找可以复制的代码,而不是要安装的库.
这是受这个问题的启发:
Levenstein距离算法似乎运行良好,但计算需要时间.当用户输入额外的字母时,是否需要重新运行查询这一事实是否有任何优化?我有兴趣最多显示每个输入的前10个匹配项.
text-search ×10
algorithm ×2
fuzzy-search ×2
java ×2
javascript ×2
mongodb ×2
.net-4.0 ×1
android ×1
arabic ×1
architecture ×1
c# ×1
class ×1
git ×1
git-commit ×1
indexing ×1
indexof ×1
jar ×1
mongoose ×1
nlp ×1
node.js ×1
plugins ×1
pymongo ×1
regex ×1
search ×1
todo ×1