My Solr安装程序包含用于索引和查询的筛选器LowerCaseFilterFactory,因此
-索引仅包含小写单词和
-在用于搜索之前,每个查询都应该转换为小写
在执行“mix:barba”之类的非模糊搜索时,它们工作正常:
-巴尔巴找到了巴尔巴和巴尔巴
-巴尔巴找到了巴尔巴和巴尔巴
问题是,只要我进行模糊搜索,这些过滤器似乎就被绕过了:
-barba~0.8找到barba和barba
-Barba~0.8找不到任何东西
我对这些结果的解释是:当进行模糊搜索时,查询不再变为小写(因此小写查
我已经在这里看到了很多这样的主题,但是实现起来仍然很混乱。就我而言,我需要做到以下几点:
在标题和文本中搜索某些短语,并给出标题^3,文本^1
基于#1中的结果,我需要通过修改时间来提高结果
我尝试过这些方法,但效果不同:
/solr/select
?q={!boost b=$dateboost v=$qq defType=dismax}
&dateboost=recip(ms(NOW/HOUR,modified),86400000,1,1)
&qq=video
&qf=
我试图在一个包含多个单词的字段上执行一个简单的方面请求(例如:“Name1 Name2”,有时里面有点和逗号),但我得到的是
"terms" : [{
"term" : "Name1",
"count" : 15
},
{
"term" : "Name2",
"count" : 15
}]
所以我的字段值被空格分割,然后运行facet请求
查询示例:
curl -XGET http://my_server:9200/idx_occurrence/Occurre
对于多个起始点,如果我提供键“name”的全名(值),密码查询就会工作
这项工作:
start n=node:na('NAME:("JERI, MICHAEL M", "ANDREW, TONNA", "JILLSO, DAVID")')
return n.NAME
比方说,如果我希望在名称键上使用通配符,类似这样的内容:
start n=node:na('NAME:("JERI*", "ANDREW*", "JILLSO*")')
return n.NAME
这不管用。它给我零行
如果有人
我有一个将I.B.M.转换如下的分析器:1:I.B.M[0,5]1:I[0,1]2:B[2,3]3:M[4,5]3:ibm[0,5]。因此,I.B.M.被索引为I.B.M、I.B.M和ibm
我的理解是,查询搜索也会被分析。我的问题是,当搜索词为I.B.M.时,预期的行为是什么。?我本来希望弹性搜索能够找到像I.B.M.和IBM这样的文档,但它找不到后者。我的期望是,搜索I.B.M.将等同于搜索I.B.M、ibm或ibm。这是因为这些令牌是由分析器添加的。如果搜索词是IBM,则会找到这两个文档,
我正在使用Lucene 4.7版,当我执行类似操作时:
Analyzer analyzer
= new EnglishAnalyzer(Version.LUCENE_47);
我喝了一杯酒。有什么想法吗?找到了很多这样做的例子,它应该是有效的
谢谢您的类路径中是否有lucene-analyzers-common-4.7.0.jar?另外,您是否有可能从另一个包导入版本类?是的,我找到了它,我有一个与analyzer包同时发布的版本,lucene analyzers 3.6.2和lucen
我想让文档中的前n个(我设置的)单词比Lucene中文档的其余部分更重要。我该怎么做?我发现了一些关于提升的东西,但提升一个领域更重要。我的文档应该是唯一的字段。
在索引时对单词进行编号并提高它们是一种解决方案吗?诸如此类:
TextField myField = new TextField("text",termAtt.toString(),Store.YES);
myField.setBoost(2);
document.add(myField);
如果我没有找到文档中的第n个单词?
映射中是否有方法声明如果某个值为null,则跳过文档
要跳过索引的文档示例:
PUT /employees/managers/1
{
"name": "",
"age": 24
}
您可以定义数据验证约束。
如果将文档字段“name”映射为notnull约束,则如果“name”为null,则文档不会编制索引。
下面是映射实体的json示例:
{ "employees": {
"mappings": {
"managers": {
"properties": {
索引文件包括:
1) 经验
2) 有经验
3) 有经验
4) 精通
5) 知识
6) 经验
7) 渊博的知识
8) 了解
9) 负责
如果我的搜索查询是“有经验的候选人”,则只应检索前3个文档。这是只包含搜索查询中的单词的文档。例如,考虑到第四个文档,“熟练程度”在搜索查询中不存在,则不应检索该文档
我用Should子句尝试布尔查询。但它也返回了部分匹配文档(4-6)
我只需要文档1-3。1)创建一个包含所有可能单词的词汇表
2) 除了查询中的单词外,不能为所有单词添加其他单词
ArrayLis
我注意到Lucene最近发布了v2.9(今年9月25日-2009年),而Lucene.Net似乎是v2.0(2007年发布):
Lucene.net的v2.0是否与原始ApacheLucene的v2.0中的功能相对应
ApacheLucene自2007年以来所做的改进是否足够重要,可以考虑改用Java版本(带有一些互操作性)
他们的SVN回购中有更多的最新版本。
对于所有基本的东西,我认为它非常有效。
我敢肯定,在一些极端情况下,最新的JAVA版本会将其边缘化,但对于基本的东西,您应该可以
J
我想按日期字段(date1)对lucene(.net)搜索结果进行排序,但如果没有设置date1,我想使用date2
传统的排序方法是按日期1排序,然后按日期2排序相同的值。这意味着无论何时我回到date2,这些值都将位于结果集的顶部(或底部)。我想将date2值与date1值交错
换句话说,我想按(date1!=null?date1:date2)排序
这在lucene有可能吗
我认为我可以在索引创建阶段这样做(只需将相关的日期值放在一个新字段中),但我对索引过程没有足够的控制能力来做到这一点,
我试图通过两个字段进行搜索,每个字段都有自己的增强因子,并且包含语音变化,但是具有这些变化的结果在结果中应该总是排名较低。目前的问题是,在助推力较高的领域中,语音变化的结果比在助推力较低的领域中精确匹配的结果更受欢迎
在schema.xml中,我有一个名为“text”的字段,其中包含两个其他可搜索字段(“title”和“description”,通过copyField实现),每个字段都有其提升因子(在solrconfig.xml中的Demax SearchHandler中定义)。
此字段在“索引
有谁能给我推荐一种方法,通过这种方法可以对chm文件进行索引,例如pdf的pdfbox。如果你在谈论文件,你可以用从文件中提取文本,然后以正常方式对其进行索引 如果您还需要索引其他文档格式,您可能会在中找到更好、更通用的解决方案
他们最近刚刚添加了一个CHM解析器(供参考:),它将在下一个版本中出现。小心点。可能有一个二进制和一个文本(.xml存储为.hhk)索引,它们可能不包含相同的内容。它似乎运行良好,.hhc问题已经解决。Thnx againApache Tika更常用于Lucene,我只
假设我有一个Lucene客户索引。每个客户都有他们订购的产品
假设这两个家伙代表我索引中的两个文档:
Name: John Smith
Product: Chicken Sandwich, Price: $10
Product: Dodge Challenger, Price: $35000
Name: John Q. Public
Product: Chicken Sandwich, Price: $15
Product: Audi TT, Price: $35000
考虑
我目前正在研究从文本(许多来自网络的文章)中提取人名、位置、科技词汇和类别的选项,然后将这些内容输入Lucene/ElasticSearch索引。然后将附加信息添加为元数据,这样可以提高搜索的精度
例如,当有人询问“wicket”时,他应该能够决定他指的是板球运动还是Apache项目。到目前为止,我试图自己实现这一点,但收效甚微。现在我发现了很多工具,但我不确定它们是否适合这个任务,它们中哪一个与Lucene集成得好,或者实体提取的精度是否足够高
,看起来很有希望
需要。使用哪些培训数据
Lucene:我想对我使用Lucene构建的索引进行搜索,但在搜索时我想忽略搜索条件的情况,我该怎么做?
例如,我的索引(lucene)中有http或http,因此当我使用http进行搜索时,我应该返回这两个结果。应该向分析筛选器链添加小写筛选器。
使用Lucene的LowerCaseFilter,可以在索引和搜索之前将标记小写,以使搜索不区分大小写。
建议在索引和搜索过程中执行此操作。应将小写筛选器添加到分析筛选器链。
使用Lucene的LowerCaseFilter,可以在索引和搜索之前将标
我们的图中有Lucene索引的数据,需要使用
上面链接中的示例显示了Lucene语法:
title:(+return +"pink panther")
我不知道如何通过http将这样的请求发送到REST接口。具体来说,第二学期的空格给我带来了麻烦
我们的数据实际上是一个列表,我需要匹配多个项目:
regions:(+asia +"north america")
有人有什么想法吗
更新:对于记录,以下url编码字符串适用于此特定查询:
regions%3A%28%2Basia+%2B%22n
我们通过.Net客户端使用
索引文档的索引如下所示:
[ElasticType(
Name = "tag",
DateDetection = true,
NumericDetection = true,
SearchAnalyzer = "standard",
IndexAnalyzer = "standard"
)]
public class TagIndexDto : AbstractInd
我在谷歌上搜索了两天。。。我真的需要帮助
我有一个应用程序,其中有多个线程试图为每次更新使用Open/Close ofIndexWriter更新lucene索引。线程可以随时启动
是的,write.lock的问题!因此,可能有两种或两种以上的解决方案:
1) 检查IndexWriter.IsLocked(index)以及它是否被锁定以休眠线程。
2) 打开一个IndexWriter,不要关闭它。问题是我有另一个应用程序使用相同的索引。我应该什么时候关闭索引并完成整个过程
这里有一些有趣的帖子
我有一个Person实体,具有多个与姓名相关的属性firstName、lastName、title。
所有与名称相关的属性都应该存储在一个lucene索引字段fullName中
@索引
@实体
公共阶层人士{
...
私有字符串名;
私有字符串lastName;
私有字符串标题;
@Fieldstore=Store.NO,index=index.TOKENIZED
公共字符串getFullName{
返回firstName++lastName++title;
}
}
我面临的唯一问题是在更新与名
Lucene索引的内存表示(与文件格式相反)是什么样子的?是否将整个反向索引加载到内存中,例如作为过账列表数组(其中每个过账列表包含文档ID、文档中的术语频率和位置)?差不多
class Posting {
private int docID;
private int termFreq;
private int[] termPositions;
}
class PostingList {
private Posting[] postings;
}
public class S
我们的Elasticsearch索引中有各种包含文本的行
“…2%牛奶…”
用户在搜索字段中输入“2%牛奶”之类的查询,我们在内部将其转换为查询
title:(+milk* +2%*)
因为所有条款都是必需的,我们可能对包含“2%乳脂”的行感兴趣
上面的查询返回零命中率。将查询更改为
title:(+milk* +2%)
返回合理的结果。那么为什么第一个查询中的“*”运算符不起作用呢?除非设置映射,否则“%”符号将在标记化过程中被删除。基本上,“2%牛奶”将变成代币2和milk
当您搜索“2
我正在寻找一种方法来修改Lucene的字段名,使用从字段名到编码字段名的已知映射
例如,如果我有一个查询title:System,我需要将其转换为查询a200:System(我从字段编码mappingtitle->a200知道映射)
我可以编写一个函数来转换查询,但我想知道是否有一种简单的方法来实现这一点。
该函数类似于:
公共查询重写WithEncodedFields(查询查询,地图编码){…}
如果其中一个QueryParser中有这样的选项,那也太好了,但我还没有找到任何东西。Solr提供
标签: Lucene
elasticsearchfaceted-search
我有一个ElasticSearch索引,它包含了数百万种产品和一千多个品牌
我必须使用什么查询才能获得索引中所有品牌的列表
产品输入示例:
{
_index: main
_type: one
_id: LA37dcdc7D70QygoV4KjfRU0hqUDhPs=
_version: 4
_score: 1
_source: {
pid: S2dcdcd528950_C243
mid: 6540
u
我在elasticsearch中存储书籍标题,它们都属于许多商店。像这样:
{
"books": [
{
"id": 1,
"title": "Title 1",
"store": "store1"
},
{
"id": 2,
"title": "Title 1",
"s
我试图使用mahout的lucene.vectors从lucene索引中提取数据。索引包含Nutch爬网的网页内容。索引的一些字段包括:标题、url、id、文本和类别
我知道我可以使用lucene.vectors从索引中获取数据并将其转换为vectors。然而,我不明白的是如何告诉这个工具Lucene中哪个字段包含标签。对于我的场景,category字段是label字段
我使用的是mahout 0.9
提前感谢,,
Ameer您可能需要一个中间步骤,首先将lucene索引转换为一个序列文件,该文
我在Sitecore 7.2中使用Lucene搜索,并使用谓词生成器搜索数据。我在索引中包含了一个计算字段,它是一个字符串。当我使用.Contains(mystring)搜索该字段时,如果mystring中存在“和”,则搜索失败。如果mystring中没有“and”,则它可以工作
你能给我一些建议吗?Lucene默认情况下,在处理字段和查询时,将删除所谓的“停止词”,如和以及等
如果您不希望出现这种行为,可以在配置的字段映射部分添加一个条目,告诉Sitecore如何处理字段
<fieldN
标签:elasticsearch Lucene
heap-memory
执行以下简单搜索请求:
http://localhost:9200/_search?size=100000
我的堆使用率突然增加。由于查询不包含任何筛选字段、聚合等,因此字段数据缓存和筛选缓存没有机会填充堆。我不明白堆使用率增加背后的原因是什么
我怀疑这是因为\u源文件字段。但我不确定。我想知道幕后发生了什么。不,这是因为size=100000。Elasticsearch将为存储的文档数量分配内存。100000是个大数字。例如,如果您将该值降低到1000,则可能不会填充那么多堆
在任何情况下,使
我正在使用Lucene.net搜索给定的文档。一旦搜索完成,它应该在文档中突出显示搜索的术语。我看到过返回最佳片段的示例。但我需要强调的是主要内容
using (StandardAnalyzer standardAnalyzer = new StandardAnalyzer(Version.LUCENE_30, stopWords))
{
QueryParser parser = new QueryParser(Version.LUCENE_30
我试图从某个零售商那里搜索最匹配的产品(bounty纸巾),我的查询如下,但查询返回0命中率
BooleanQuery.Builder combine = new BooleanQuery.Builder();
Query q1 = new QueryParser("product", new StandardAnalyzer()).parse(QueryParser.escape("product:" + "bounty paper towel"));
combine.add(q1, Boo
可以告诉Lucene按顺序和固定大小写入其段吗?通过这种方式,我们可以避免合并,因为合并对于大型细分市场来说是沉重的。Lucene的LogMergePolicy类具有类似的功能,可以通过文档计数或文件大小设置最大段大小,但这只是合并的一个限制。您可以使用在内存中进行小段合并,并且仅在达到约256MB时才将其写入磁盘
但从根本上说,合并是必要的,因为像FST这样的数据结构只写一次,并通过创建一个新结构来修改
也许这可以与FilesystemDirectory结合使用,因为它不会执行进一步的合并。但
我将文档添加到lucene索引中,如下所示:
Document doc = new Document();
String stringObj = (String)field.get(obj);
doc.add(new TextField(fieldName, stringObj.toLowerCase(), org.apache.lucene.document.Field.Store.YES));
indexWriter.addDocument(doc);
searchTerm = "*" +
如何使用Lucene查询在alfresco共享UI中获取特定内容类型的文档计数
我尝试在alfresco共享UI中查询alfresco Lucene查询。但它只给出了前100个结果
是否有任何最好的方法可以仅通过特定内容类型或特定露天站点下的文档计数获取文档计数
请建议是否有其他最好和有用的方法
提前感谢。ResultSet result=searchService.query(,searchService.LANGUAGE\u LUCENE,“+PATH:\”/app:company\u ho
我是lucene的新手,第一天新的。所以我读了一篇关于lucene的教程,花了一段时间试图找出如何在lucene中找到一个非空值
所以我有一个文件叫做Inspect
该文档有两个我感兴趣的字段:Inspect和Direct
{
"Inspect": "Feather",
"Direct": {}
}
我想查找Inspect=“Feather”和Direct不为空的所有文档。
我还对查找Direct也是空的文档感兴趣
我在ravenDB工作室做这个,所以我使用lucene。我试
我正在应用以下Lucene查询谓词以获得2到6范围内的所有包含数字:
value:[2 TO 6]
并接收具有以下值的文档:
567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000
我对数值范围查询感兴趣,很明显,例如,Long值567986400000不在[2到6]范围内。看起来范围搜索是字符串,我不知道如何在我的应用程序中解决不同数值的问
我想从包含json的@message字段中提取Kiabana字段。
例:
有“操作”和“应用”字段,我希望能够找到命中应用程序的前5个请求
我从类似的事情开始:
filter {
if ([message]~ = "Audit") {
grok {
match => {
"message" => "%{WORD:uuid}, %{WORD:action}, %{WORD:resultCode}, %{WO
在ExistDB4.4中,我试图实现一个基本的Lucene查询结构,但它没有返回任何结果
在/db/apps/deheresi/data中,我有一组具有相同结构的tei xml文档,我只想将我的查询应用于元素tei:seg及其子体中的文本内容。典型的样本是:
<TEI>
<text>
[...]
<seg type="dep_event" subtype="event" xml:id="MS609-0001-1">
<
我正在努力用Kibana中的Lucene语法搜索一个简单的短语
我们的日志如下所示:
API::GetStatus::MP181210.1524.O47211::未找到。
API::GetStatus::MP181210.1144.V12345::Found-这里有一些随机的东西
我想查找其中包含“find-”的所有行,因此我认为(因为连字符是保留符号),我应该搜索:
“API::GetStatus::”和“Found\”
然而,出于某种原因,它忽略了尾随的连字符,这就是我得到的结果
有人能给
我有下面两个弹性搜索查询
这将给出5个结果
POST twitter/object/_search
{
"_source": false,
"query": {
"query_string": {
"query": "Apple AND Orange OR Banana",
"default_field": "content"
}
}
}
这将得到12个结果
POST twitter/object/_search
{
"_source": fal
在某些查询语言中,您有时会首先创建一些外观怪异的结构,如下所示:
从1=1的用户中选择*
(1=1部分)
这不是一个关于是否以及何时应该这样做的问题,但可能有多种原因,比如可配置的UI或类似的东西
我的问题是,Lucene查询语法是否提供了类似的功能。我尝试在Elasticsearch中的查询字符串查询中执行以下操作:
1:1
true:true
它不会返回任何东西,在这种情况下,我希望它能找到所有东西
有什么想法吗?一个非常简单的选项是使用match\u all,但查询结果集也有一个限制m
我正在尽量压缩索引大小,有什么帮助吗?
公共类LuceneIndexer
{
专用Analyzer_Analyzer=新的ArabicAnalyzer(Lucene.Net.Util.LuceneVersion.Lucene_48);
私有字符串_indexath;
专用目录_indexDirectory;
公共索引编写器(IndexWriter);;
公共LuceneIndexer(字符串索引XPath)
{
这是.\u indepath=indepath;
_indexDirectory=
我正在将语义MediaWiki与Lucene search结合使用,并寻找一种方法,使用搜索输入项嵌入SQL或语义搜索查询,以生成一个小的结果表
例如:如果我在搜索Bob的电话号码,并且我的语义数据在文章[[Bob]]中的结构为[[Bob的号码::555-555-5555]],我希望搜索“Bob号码”不仅返回正常的lucene结果,而且返回一个包含语义查询结果的小表,即类似于
{{#ask: [[Bob]]
| ?Number
| format=table
}}
其中“Bob”和“Numb
我有一个简短的问题。比如说,我有一个字符串“这个字符串中有一些文本”。我希望lucene能够通过以下搜索找到它:
"string has"
"has this"
"text this"
我应该使用Analyzer和Query的哪种组合?Lucene 3.0.3
您可能希望使用solr而不是lucene,因为它不需要您了解这样的事情
标准分析器和查询解析器可以工作
我们有一个问题:
昨天,我们在Alfresco有一个自定义xmlModel,它有一个自定义类型、带有属性的内容扩展和一些必需的方面
<type name="custom:myType">
<title>Object</title>
<parent>cm:content</parent>
<properties>
<property name="custom:myProper
在最新版本的lucene 4.6中,IndexReader.deleteDocuments()不再存在。有人告诉我应该改用IndexWriter。然而,API文件显示:
void deleteDocuments(Query... queries)
删除与提供的任何查询匹配的文档
void deleteDocuments(Query query)
删除与提供的查询匹配的文档
void deleteDocuments(Term... terms)
删除包含任何条款的文档,以及
void del
我有一个包含数千个文档(比如10000个)的索引。
我针对它运行的查询用于自动完成搜索:filteredwithfilter匹配文档的小子集(比如100),并且query为匹配短语前缀
问题是,只有当我设置大的max_扩展时(比如1000,默认为50),我才能得到预期的结果。
如果我答对了,ES首先执行一个查询,查找术语的max\u扩展,然后将过滤器应用到它迄今为止找到的内容。
如果max\u扩展很小,则很可能根本不包括与筛选器匹配的文档
问题是,是否有一种方法可以先进行过滤以减少结果集
完成建
我是elasticsearch的新手,我想我会通过以下步骤开始。
但我在这里偶然发现了一些非常基本的疑问。我无法理解这里的数据表示形式。例如,本教程提到创建索引
curl -XPUT http://localhost:9200/shakespeare -d '
{
"mappings" : {
"_default_" : {
"properties" : {
"speaker" : {"type": "string", "index" : "not_analyzed" },
我的情况是,我将发票的元数据放入Elasticsearch 1.5.2索引中,运行在UbuntuLinux15.04和OracleJDK8U45上。其中一个字段是poNumber,它的值通常类似于“123-R45678”或“123-4Q5678”。我尝试使用PrefixQuery(通过查询解析器)搜索以前缀开头的值,例如“123-4*”或“123-R*”。我最接近成功的方法是在poNumber字段上使用关键字分析器,并在搜索时使用相同的关键字分析器,URL如下所示:
http://localho
lastModified(目录d)方法在lucene 4中不推荐使用。你能告诉我应该用什么来代替这个代码吗。Lucene API中再也没有这样的方法了。问题是,如果需要此信息,应该通过提交数据使其可用
因此,当您提交到索引时,请按如下方式设置提交数据:
Map userData=newhashmap();
userData.put(“lastModified”,String.valueOf(new Date().getTime());
indexWriter.setCommitData(用户数据
我有一个32GB内存和四核3.2GZ CPU的节点。我使用单节点ElasticSearch6.2.1(ES)群集,并将16GB内存分配给ES。我正在使用ES进行目录搜索。它工作得很好,但有时(每月2-3次)ES的响应速度太慢,CPU利用率变得100%(ES使用主要部分),在我重新启动ElasticSearch之前,它不会响应
我已经检查了所有的问题,它们都可以。在我的单节点集群中,有14个索引,平均有50000个文档
我需要知道我应该在集群中添加一个额外的节点吗
另外,我的好奇是:-是否有任何参
上一页 1 2 ...
33 34 35 36 37 38 39 ...
下一页 最后一页 共 78 页