我有一个我想要搜索的URL数据库.因为URL并不总是写成相同的(可能有也可能没有www),我正在寻找索引和查询URL的正确方法.我尝试了一些东西,我认为我很接近但不确定为什么它不起作用:
这是我的自定义字段类型:
<fieldType name="customUrlType" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
例如:
http://www.twitter.com/AndersonCooper 在编入索引时,将在不同的位置有以下单词:http,www,twitter,com,andersoncooper
如果我只搜索twitter.com/andersoncooper,我希望这个查询匹配索引的记录,这就是为什么我也使用WDF来分割搜索查询,但搜索查询最终是这样的:
myfield :("twitter com andersoncooper")真的希望它匹配所有包含以下所有单词的记录:twitter com andersoncooper
我应该使用不同的查询过滤器或标记器吗?
我有一个条目集合看起来像:
{
"userid": 1,
"contents": [
{ "tag": "whatever", "value": 100 },
{"tag": "whatever2", "value": 110 }
]
}
Run Code Online (Sandbox Code Playgroud)
我希望能够查询该集合并仅返回数组的一部分:与查询匹配的部分.我正在尝试使用$ position运算符来执行此操作,但到目前为止它还没有工作.
更准确地说,我想做的是:
collection.find({'contents.tag':"whatever"},{'contents.$.value':1})
Run Code Online (Sandbox Code Playgroud)
因此,我希望只有与匹配查询的数组中的条目对应的值,在这种情况下为100.
你知道什么是错的吗?我在想,也许$运算符只能用于更新而不能用于查询.有谁知道吗?
谢谢 !
假设我有一个这样的文档:
{
_id: "cow",
comments: [
{user: "karl", comment: "I like cows.", at: /*a date*/},
{user: "harry", comment: "Cows are the best.", at: /*a date*/}
]
}
Run Code Online (Sandbox Code Playgroud)
现在我想收集"karl"我的数据库中留下的所有注释.或者只是特定日期的那些."comments"已编制索引,我该如何查询?
我有两个数据库,我必须在我的应用程序中使用.我的mongoid.yml中有以下内容:
development:
# Configure available database sessions. (required)
sessions:
# Defines the default session. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: db_development
username: myusername
password: mypassword
# Provides the hosts the default session can connect to. Must be an array
# of host:port pairs. (required)
hosts:
- myserverip:27017
databases:
secondary:
database: db2_development
username: myusername
password: mypassword
# Provides the hosts the default session can connect …Run Code Online (Sandbox Code Playgroud) querying multiple-databases mongoid ruby-on-rails-3 mongoid3
我使用elasticsearch 0.90.10,我想查询中使用,比如聚合函数来执行它的搜索sum(),avg(),min().
假设我的数据是这样的
[
{
"name" : "Alice",
"grades" : [40, 50, 60, 70]
},
{
"name" : "Bob",
"grades" : [10, 20, 30, 40]
},
{
"name" : "Charlie",
"grades" : [70, 80, 90, 100]
}
]
Run Code Online (Sandbox Code Playgroud)
假设我需要取平均成绩大于75(即avg(grades) >= 75)的学生.如何使用DSL,过滤器或脚本在ES中编写这样的查询?
提前致谢.
我对Firebase和Swift很陌生,在查询方面我遇到了一些麻烦.所以我基本上有两件事要做:
我对此问题的数据的相关部分如下所示:

正如你所看到的,我正在使用Firebase的简单登录(后来我也想添加Facebook登录),我正在用他们的uid存储我的用户.
我的规则文件的一部分如下所示:
"registered_users": {
".read": true,
".write": true,
".indexOn": ["name"]
}
Run Code Online (Sandbox Code Playgroud)
所以每个人都应该对这部分数据进行读写访问.
我还在他们的网站上阅读了Firebase iOS指南的"检索数据"部分,根据该指南,我获取所有用户名和电子邮件地址的代码应该有效,至少我是这么认为的.但事实并非如此.这是我的代码:
func getUsersFromFirebase() {
let registeredUserRef = firebaseRef.childByAppendingPath("registered_users")
registeredUserRef.queryOrderedByChild("name").observeSingleEventOfType(.Value, withBlock: { snapshot in
if let email = snapshot.value["email"] as? String {
println("\(snapshot.key) has Email: \(email)")
}
if let name = snapshot.value["name"] as? String {
println("\(snapshot.key) has Name: \(name)")
}
})
}
Run Code Online (Sandbox Code Playgroud)
我注意到,在firebase指南中,他们总是使用ChildAdded类型而不是Value,但对我而言Value更有意义.带有Value的输出是空的,带有ChildAdded的输出只有一个用户,即现在登录的用户.
所以我的问题是:
我希望我的描述足够详细.请事先提供帮助.
补充:
奇怪的是,"检索数据"指南说,可以按高度查询和排序以下数据.
数据: …
我们有一个使用特定参数运行构建的Jenkins作业.其中两个参数对我很重要:部署构建的机器以及部署的软件包的版本号.
https://开头jenkinsurl /工作/ folder_level1 /工作/ folder_level2 /工作/ folder_level3/JOB_ID /
以下是url的json输出示例:
https://开头jenkinsurl /工作/ folder_level1 /工作/ folder_level2 /工作/ folder_level3/JOB_ID/API/JSON
{"actions":[{"parameters":[{"name":"lab_name","value":"labA"},{"name":"version_no","value":"1.1"}]}
Run Code Online (Sandbox Code Playgroud)
使用Jenkins REST API或Python Jenkins包装器,如果我知道folder_level1并希望将实验室名称与folder_level3中的作业匹配以最终从该URL获取版本,我将如何搜索作业?
我有以下型号:
from django.db import models
from foo.bar.models import Location
class AbstractShop(models.Model):
location = models.ForeignKey(Location, on_delete=models.CASCADE, related_name="%(class)s")
class Meta(self):
abstract = True
class Bakery(AbstractShop):
some_field = models.BooleanField("Some field", default=True)
class Meta:
verbose_name = "Bakery"
verbose_name_plural = "Bakeries"
class Supermarket(AbstractShop):
some_other_field = models.CharField("Some other field", max_length=20)
class Meta:
verbose_name = "Supermarket"
verbose_name_plural = "Supermarkets"
Run Code Online (Sandbox Code Playgroud)
现在,Supermarket以及Bakery继承location-ForeignKey 从AbstractShop.
如果我想查询Bakery模型上的反向关系Location,我必须使用bakerys(而不是正确的bakeries) as related_name- 我不想要它,因为它在语法上是错误的且不直观。
所以我的问题是:
有什么办法可以使用verbose_name_pluralasrelated_name …
当我运行下面存储的JavaScript函数时,我得到错误:
> db.system.js.save({_id:"last_n_users", value: function(n){return db.users.find().sort({created_at:-1}).limit(n)}})
> db.eval("last_n_users(10)")
Run Code Online (Sandbox Code Playgroud)
这是错误:
{ "value" : "DBQuery: store.users -> undefined" }
Run Code Online (Sandbox Code Playgroud)
为什么?请帮我?
在Laravel文档中,它说你可以使用这种语法来查询对象关系,只获得至少有一个Comment的帖子:
$posts = Post::has('comments')->get();
Run Code Online (Sandbox Code Playgroud)
我正在尝试类似的东西,我只想获取至少有一个关系对象的对象.这是我的两个班级:
class Movie extends Eloquent {
protected $table = 'movie';
public function matches() {
return $this->hasMany("Match");
}
}
class Match extends Eloquent {
protected $table = 'match';
public function movie() {
return $this->belongsTo("Movie");
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我打电话时
$movies = Movie::has('matches')->get();
Run Code Online (Sandbox Code Playgroud)
我得到一个空集合.如果我打电话
$movie = Movie::find(1)->matches()->get();
Run Code Online (Sandbox Code Playgroud)
我确实得到了与电影相关的匹配,所以我知道关系设置正确.我无法弄清楚我在使用Movie :: has方法做错了什么.
我正在使用随composer创建的laravel项目中包含的sqlite3数据库.这是结构和数据:
sqlite> .schema movie
CREATE TABLE "movie" ("id" integer not null primary key autoincrement, "title" varchar not null);
sqlite> .schema match
CREATE TABLE "match" ("id" integer not null primary key …Run Code Online (Sandbox Code Playgroud)