需要在ElasticSearch中找到一种方法,以根据字段的特定值提高文档的相关性.具体来说,我的所有文档中都有一个特殊字段,字段值越高,包含它的文档就越相关,无论搜索是什么.
考虑以下文档结构:
{
"_all" : {"enabled" : "true"},
"properties" : {
"_id": {"type" : "string", "store" : "yes", "index" : "not_analyzed"},
"first_name": {"type" : "string", "store" : "yes", "index" : "yes"},
"last_name": {"type" : "string", "store" : "yes", "index" : "yes"},
"boosting_field": {"type" : "integer", "store" : "yes", "index" : "yes"}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望具有较高的boost_field值的文档本身比具有较低的boosting_field值的文档更具相关性.这只是一个起点 - 在确定搜索中每个文档的最终相关性得分时,还将考虑查询与其他字段之间的匹配.但是,在其他条件相同的情况下,提升字段越高,文档就越相关.
任何人都知道如何做到这一点?
非常感谢!
我想知道是否有一种有效的方法来检查Bash中的数组中是否存在元素?我正在寻找类似于我在Python中可以做的事情,例如:
arr = ['a','b','c','d']
if 'd' in arr:
do your thing
else:
do something
Run Code Online (Sandbox Code Playgroud)
我已经看到使用关联数组为Bash 4+进行bash的解决方案,但我想知道是否还有其他解决方案.
请理解我知道琐碎的解决方案是迭代数组,但我不希望这样.
我已经问了关于Meta Stack Overflow的一个类似问题,但这个问题专门讨论了Lucene.NET是否用于Stack Overflow.
这里的问题的目的,更多的是一种hypotetical的,至于是什么方法,如果他们是在一个站点使用Lucene.NET,以此为基础在现场搜索和其他因素之一会使像堆栈溢出[SO].
根据Stack Overflow博客上标题为" SQL 2008全文搜索问题 " 的条目,有一个强烈的迹象表明Lucene.NET在某些时候正在被考虑,但似乎绝对不是这样,根据评论杰夫达尔加斯于2010年2月19日:
Lucene.NET没有用于Stack Overflow - 我们正在使用SQL Server全文索引.搜索是我们继续进行细微调整的领域.
所以我的问题是,如何将Lucene.NET用于具有与Stack Overflow相同语义的站点?
这是一些背景知识以及我到目前为止所做的/思考的内容(是的,我已经实现了大部分内容并且搜索是我必须完成的最后一个方面):
技术:
当然,这个节目的明星,Lucene.NET.
目的也是尽快转向.NET/C#4.0.虽然我不认为这是改变游戏规则的,但应该注意.
在深入了解Lucene.NET的各个方面之前,重要的是要指出它的SQL Server 2008方面以及所涉及的模型.
楷模
与Stack Overflow相比,此系统具有多个主要模型类型.这些模型的一些例子是:
关于这些模型需要注意的重要事项:
然后有Stack Overflow提供的东西,IMO是模型的装饰者.这些装饰者可以有不同的基数,可以是一对一或一对多:
并且有支持的标签,它们本身就是以相同的方式键入它们的模型的一对一装饰器(通常通过模型id类型和模型id):
回复(答案)是具有大多数模型具有的大多数装饰器的模型,它们只是没有标题或URL,并且模型是否具有回复是可选的.如果允许回复,那当然是一对多的关系.
SQL Server 2008
这些表几乎遵循上面模型的布局,为装饰器提供单独的表,以及一些支持表和视图,存储过程等.
应该注意的是,不使用全文搜索的决定主要基于它不像Lucene.NET那样规范化分数这一事实.我对如何利用基于文本的搜索的建议持开放态度,但我将不得不跨多种模型类型执行搜索,因此请记住,我需要以某种方式对分数进行标准化.
Lucene.NET
这就是大问号所在.到目前为止,我对Stack Overflow功能的想法以及我已经完成的方式和内容.
索引
问题/型号
我相信每个模型都应该有一个自己的索引,其中包含一个唯一的id,以便根据该id的Term实例(索引,未分析)快速查找它.
在这方面,我考虑让Lucene.NET分析每个问题/模型,并分别单独回复.因此,如果有一个问题和五个答案,则问题和每个答案将分别作为一个单元编入索引.
这里的想法是Lucene.NET返回的相关性得分将更容易比较以不同方式投影的模型(比如没有回复的东西). …
我们有一个150多个表的设计,在.dbml布局中到处都有行,很难找到单独的表.
有没有办法在dbml布局中搜索而不是滚动试图找到一个表(Ctrl + F不起作用),运行Visual Studio 2010 Ultimate?
自从我实现app compat后,我的searchview不再起作用了:
Process: com.laurenswuyts.witpa, PID: 26666
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)' on a null object reference
at com.laurenswuyts.witpa.Activities.Events.EventActivity.onCreateOptionsMenu(EventActivity.java:75)
at android.app.Activity.onCreatePanelMenu(Activity.java:2820)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:275)
at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:276)
at android.support.v7.app.ActionBarActivityDelegate$1.onCreatePanelMenu(ActionBarActivityDelegate.java:79)
at android.support.v7.widget.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:49)
at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:459)
at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:69)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Run Code Online (Sandbox Code Playgroud)
因此,当我拥有它时,搜索视图的nullpointer:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.event_main, menu);
// Get the SearchView and set the searchable configuration
// Associate searchable configuration with the …Run Code Online (Sandbox Code Playgroud) 我有一个mysql表,其中有一个列将xml存储为字符串.我需要找到xml列包含6个字符的给定字符串的所有元组.没有其他事情 - 我需要知道的是这个6字符串是否存在.
因此,将文本格式化为xml可能无关紧要.
问题:如何在mysql中搜索?即
SELECT * FROM items WHERE items.xml [contains the text '123456']
有没有办法可以使用LIKE运算符来执行此操作?
是否存在任何内置方法作为列表的一部分,它将为我提供某些值的第一个和最后一个索引,例如:
verts.IndexOf(12.345)
verts.LastIndexOf(12.345)
Run Code Online (Sandbox Code Playgroud) 除了循环以寻找JSON数据之外,还有更好的方法吗?这是编辑和删除.
for(var k in objJsonResp) {
if (objJsonResp[k].txtId == id) {
if (action == 'delete') {
objJsonResp.splice(k,1);
} else {
objJsonResp[k] = newVal;
}
break;
}
}
Run Code Online (Sandbox Code Playgroud)
数据被安排为地图列表.喜欢:
[
{id:value, pId:value, cId:value,...},
{id:value, pId:value, cId:value,...},
...
]
Run Code Online (Sandbox Code Playgroud) 假设,我想从shell脚本中搜索linux中所有子目录中包含文件名python的文件.如何使用正则表达式搜索所有位置?
我有一个带有自定义对象的ArrayList.我想在这个ArrayList中搜索字符串.
对象的类看起来像这样:
public class Datapoint implements Serializable {
private String stateBased;
private String name;
private String priority;
private String mainNumber;
private String groupadress;
private String dptID;
public Datapoint(){
}
public String getMainNumber() {
return mainNumber;
}
public void setMainNumber(String mainNumber) {
this.mainNumber = mainNumber;
}
public String getName() {
return name;
}
..and so on
Run Code Online (Sandbox Code Playgroud)
我知道如何在ArrayList中搜索字符串但是如何使用我的自定义对象在ArrayList中执行此操作:
ArrayList<String> searchList = new ArrayList<String>();
String search = "a";
int searchListLength = searchList.size();
for (int i = 0; i < searchListLength; i++) {
if …Run Code Online (Sandbox Code Playgroud)