标签: search

ElasticSearch - 根据字段值提升相关性

需要在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值的文档更具相关性.这只是一个起点 - 在确定搜索中每个文档的最终相关性得分时,还将考虑查询与其他字段之间的匹配.但是,在其他条件相同的情况下,提升字段越高,文档就越相关.

任何人都知道如何做到这一点?

非常感谢!

search elasticsearch

63
推荐指数
2
解决办法
4万
查看次数

检查Bash数组中是否存在元素

我想知道是否有一种有效的方法来检查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的解决方案,但我想知道是否还有其他解决方案.

请理解我知道琐碎的解决方案是迭代数组,但我不希望这样.

arrays bash shell search

63
推荐指数
4
解决办法
14万
查看次数

如何使用Lucene.NET帮助在Stack Overflow等网站上实现搜索?

我已经问了关于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上一样.
  • 注意:这些是单向预测,因此与问题相反,您正在对内容进行陈述.人们无法对此发表回复.
  • 事件:这是关于实时事件的数据.它有位置信息,日期/时间信息.

关于这些模型需要注意的重要事项:

  • 它们都具有Name/Title(文本)属性和Body(HTML)属性(格式无关紧要,因为内容将被适当地解析以供分析).
  • 模型的每个实例在网站上都有唯一的URL

然后有Stack Overflow提供的东西,IMO是模型的装饰者.这些装饰者可以有不同的基数,可以是一对一或一对多:

  • 投票:关键用户
  • 回复:可选,作为示例,请参阅上面的Notes案例
  • 收藏:该型号是否被列为用户的最爱?
  • 评论:(可选)
  • 标记关联:标记位于单独的表中,以便不复制每个模型的标记.模型和标记关联表之间存在链接,然后从标记关联表到标记表.

并且有支持的标签,它们本身就是以相同的方式键入它们的模型的一对一装饰器(通常通过模型id类型和模型id):

  • 投票结果:总积极,负投票,威尔逊得分间隔(这很重要,它将根据条目的投票确定置信水平,在大多数情况下,假设威尔逊区间的下限).

回复(答案)是具有大多数模型具有的大多数装饰器的模型,它们只是没有标题或URL,并且模型是否具有回复是可选的.如果允许回复,那当然是一对多的关系.

SQL Server 2008

这些表几乎遵循上面模型的布局,为装饰器提供单独的表,以及一些支持表和视图,存储过程等.

应该注意的是,不使用全文搜索的决定主要基于它不像Lucene.NET那样规范化分数这一事实.我对如何利用基于文本的搜索的建议持开放态度,但我将不得不跨多种模型类型执行搜索,因此请记住,我需要以某种方式对分数进行标准化.

Lucene.NET

这就是大问号所在.到目前为止,我对Stack Overflow功能的想法以及我已经完成的方式和内容.

索引

问题/型号

我相信每个模型都应该有一个自己的索引,其中包含一个唯一的id,以便根据该id的Term实例(索引,未分析)快速查找它.

在这方面,我考虑让Lucene.NET分析每个问题/模型,并分别单独回复.因此,如果有一个问题和五个答案,则问题和每个答案将分别作为一个单元编入索引.

这里的想法是Lucene.NET返回的相关性得分将更容易比较以不同方式投影的模型(比如没有回复的东西). …

lucene search lucene.net sql-server-2008

62
推荐指数
2
解决办法
6230
查看次数

快速查找(搜索)DBML设计器中的表格?

我们有一个150多个表的设计,在.dbml布局中到处都有行,很难找到单独的表.

有没有办法在dbml布局中搜索而不是滚动试图找到一个表(Ctrl + F不起作用),运行Visual Studio 2010 Ultimate?

search linq-to-sql visual-studio

62
推荐指数
1
解决办法
7179
查看次数

自app app以来,Searchview无效

自从我实现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)

java search android menu android-appcompat

62
推荐指数
5
解决办法
3万
查看次数

在MySQL的文本列中搜索字符串

我有一个mysql表,其中有一个列将xml存储为字符串.我需要找到xml列包含6个字符的给定字符串的所有元组.没有其他事情 - 我需要知道的是这个6字符串是否存在.

因此,将文本格式化为xml可能无关紧要.

问题:如何在mysql中搜索?即 SELECT * FROM items WHERE items.xml [contains the text '123456']

有没有办法可以使用LIKE运算符来执行此操作?

mysql search sql-like

61
推荐指数
5
解决办法
21万
查看次数

在Python中查找列表中某些值的第一个和最后一个索引

是否存在任何内置方法作为列表的一部分,它将为我提供某些值的第一个和最后一个索引,例如:

verts.IndexOf(12.345)
verts.LastIndexOf(12.345)
Run Code Online (Sandbox Code Playgroud)

python search list

60
推荐指数
6
解决办法
11万
查看次数

JSON在JavaScript中找到

除了循环以寻找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)

javascript search json

59
推荐指数
3
解决办法
15万
查看次数

如何在linux shell脚本中使用正则表达式搜索文件

假设,我想从shell脚本中搜索linux中所有子目录中包含文件名python的文件.如何使用正则表达式搜索所有位置?

regex linux shell search

59
推荐指数
1
解决办法
7万
查看次数

在ArrayList中搜索某些字符串的自定义对象

我有一个带有自定义对象的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)

java search arraylist custom-object

59
推荐指数
5
解决办法
21万
查看次数