我是Lucene的新手
有没有办法让Lucene analyzer不忽略字符串中的点??
例如,如果我的搜索条件是:“A.B.C.D”,Lucene应该只给我搜索结果中包含“A.B.C.D”而不是“ABCD”的文档。…这都是关于您使用的分析器的。这个词用虚线表示,试图“照你的意思去做”。也许这将是一个更好的匹配您的需要
public static void main(String[] args) throws Exception {
RAMDirectory dir = new RAMD
我创建了一个数据库,并使用dataimport检索数据。我试过辛问:
http://localhost:8983/solr/select/?q=name:Denver AND _val_:"recip(hsin(0.611941,-1.567437,lat_rad,lng_rad,3963.205),1,1,0)"^100
尽管有检索到的记录,但当半径的值急剧减小(7.205)时,链接的排名会发生变化。为什么排名会有变化?检索到的记录数应已减少。但这并没有发生。Solr 3.1已经发布,对于基
谷歌的查询语法允许搜索诸如“as*as a摩天大楼”之类的短语,其中星号可以匹配任何术语。有没有办法在Lucene实现同样的目标?邻近运算符~可能有用,但它不是我想要的。尝试一个查询。解释如何使用它,示例与您描述的类似。Perfect。SpanQuery很有表现力。
我仍然是Solr Lucene的新手,我已经注意到了一个有趣的搜索问题
如果我对“responsive”进行基本搜索,我也会得到包含“responsible”一词的结果
我想这是可以的,但问题是我正在寻找的关键字(响应)的结果出现在包含我没有寻找的关键字的结果下面!(负责)
当然,带有“responsible”的结果有更多的关键字匹配,但事实是我没有搜索这个
我喜欢这个替代词/同义词功能,但是否有一个设置我应该寻找,以确保与实际搜索关键字的结果排名高于替代
非常感谢,非常感谢。
Seb字段中的词
我有一个名为“tag”的字段。它包含以下数据:
标签
a-b-c-d-e--12-f
a-b
a
我正在使用KeywordAnalyzer并搜索这个标记字段。
“+标签:a-b-c-d-e--12-f”
但它返回零结果。
当我降低“-”的数量时,它就起作用了。“+标签:a-b-c-d*”
如何将“a-b-c-d-e--12-f”作为单个标记进行搜索。字符“-”是中断流还是什么?您应该能够使用反斜杠转义特殊字符,例如\-在这种情况下。无法尝试您的解决方案,但我将标记字段重新索引为field.Ind
在我的lucene索引文档中,我有三个字段,即名字、中间名和姓氏。因此,如果进行了搜索,则应在索引中的任何字段中执行搜索。因此,我没有维护两个单独的索引(一个具有完整的上下文,三个字段的串接字符串,如所有索引,另一个具有单独的字段)。我只使用了后一种方法,即,我只维护具有单独字段的索引。因此,如果提交了搜索文本,那么将组合三个单独的术语查询,并使用组合的布尔查询进行搜索。因此,如果搜索文本与任何字段匹配,则将获得搜索结果。现在的问题是,如果搜索文本之间有空格,第一个单词是名字,最后一个单词是中间
标签: Lucene
characterstandardanalyzer
我正在使用Lucene搜索引擎(v36)和StandardAnalyzer。我使用多字段查询器
我的一个字段被设置为未分析,因为它是包含字母数字字符和点的版本名。如果此字段包含大写字符,则搜索不会找到任何结果。有什么想法吗
详情:
该字段包含如下值:
版本1.26.12.测试a
版本1.26.12.测试b
v1.2
版本1.虚拟
我的搜索将返回上面三个示例的结果,但不会返回最后一个示例的结果
我根本没有定制Lucene,只是我用Collections.emptySet()绕过了标准的stop
我试图从HTML文件中创建Lucene索引数据,但它引发了一个异常
实际上我想用密码加密我的lucene索引。还有其他选择吗
try{
File outputdir=new File("path upto output directory");
byte[] salt = new byte[16];
String password = "lucenetransform";
DataEncryptor enc = new Data
在我们的网站中,我们使用Lucene查询来获得搜索结果。问题是我们有时会随机得到正确结果的子集。通常一切都很好。但当您在做一些事情,如调整搜索条件、更改排序顺序等时,突然会看到结果的子集(有时是0个结果)。如果再次更改排序顺序,则会再次得到正确的结果,并且可能再也看不到该问题
有没有人经历过这个问题,并且知道是什么导致了这个问题?这可能是索引损坏还是索引的高负载
我们正在使用Lucene.NET2.9.4.1。这是一个Sitecore.NET 6.6.0(版本130404)项目。我们的索引只有不
我从7.2更新-6(160123)升级到7.5初始版本(141003)
问题是搜索不起作用,我无法重建索引或进行网站发布
该网站正在使用Lucene
我从这里获得了升级文件:
我在这里遵循了升级步骤:
更新了配置,并在此处进行了更改:
有几件事我试过了,但没有解决:
我重新运行了所有安装步骤
我们有一个自定义索引,我根据默认的web索引配置进行了更新,我还尝试将其删除
我尝试用默认配置覆盖更新的lucene配置
从7.5初始安装开始
我禁用了与Solr相关的配置
常见错误似乎是:
Exc
关于将SearcherManager与IndexWriter一起使用,我有几个基本问题
我需要定期在应用程序中重新构建Lucene索引,目前它发生在不同的线程上,而不是服务于搜索请求的线程上
我可以在应用程序的整个生命周期中使用相同的IndexWriter实例定期重建索引吗?目前,我在启动期间创建/打开它一次,只要在构建新索引时调用IndexWriter#commit
我正在使用SearcherManager获取并发布每个搜索请求的IndexSearcher实例。定期构建索引后,我计划使用sea
标签: Lucene
full-text-searchfuzzy-search
Lucene,版本:7.3.0
我只想在Lucene中使用百分比(浮动)相似性模糊查询(FuzzyQueryclass)
defaultMinSimilarity现在已被弃用,因此我只能出于自己的目的使用defaultMaxEdits
据我所知,org.apache.lucene.search.FuzzyQuery支持的最大距离不能超过2:
MAXIMUM_SUPPORTED_DISTANCE = 2
如果我想搜索55%相似的字符串,但搜索长度较大的术语,该怎么办?
我如何使用Lucene的模
我正在尝试读取lucene搜索结果的文档分数
使用以下方法时,我通过hits对象获得一组文档分数:
Hits=indexsearch.search(myQuery)
但是,如果我使用该方法:
searcher.search(myQuery,hitsCollector)
我通过hitCollector.hits对象获得一组完全不同的文档分数
我是不是遗漏了什么
谢谢 Hits对象返回的分数是标准化的,即它们始终在[0,1]范围内,最高分数接近或等于1。给HitCollector对象的分数是原始的,
关于执行涉及置换的lucene查询,我有一个问题
假设我有两个字段:“名称”和“关键字”,用户搜索“joes pizza restaurant”。我希望搜索的某些部分与“name”字段的完整内容相匹配,某些部分与关键字字段的完整内容相匹配。它应该匹配所有提供的术语,并且应该匹配字段的全部内容。例如,它可以匹配:
1) 名称:“joes餐厅”关键字:“比萨饼”
2) 名称:“joes pizza”关键字:“餐厅”
3) 名称:“比萨餐厅”关键字:“joes”
4) 名称:“披萨”关键字:“joes
标签: Lucene
lucene.netfaceted-searchcontent-indexing
我正在使用Lucene.NET构建一个分面搜索,而不是使用Solr。我想获取当前查询中导航项的列表。我只是想确定我的方向是正确的。我脑子里有一个想法会奏效,但我不确定这样做是否正确
我目前的计划是创建所有可用过滤器的hiarchry,然后使用描述的技术遍历列表,以获得每个过滤器的计数,不包括产生零结果的过滤器。听起来不错吧,还是我遗漏了什么?是的。你错过了索尔。他们在进行分面搜索时使用的数学非常令人印象深刻,几乎没有理由不使用它。我能找到的唯一例外是,如果你的索引足够小,你可以用你自己的理论支持
我正在使用Lucandra,希望删除整个索引。IndexReader和IndexWriter并没有实现所有的方法,所以即使通过调用deleteDocument(int-docNum)进行迭代也不可能
有没有人遇到过这样的问题,并想出了解决的办法
破解Cassandra密钥空间或
对Lucandra代码进行了补充,或
知道如何构造一个迭代器来删除所有文档了吗
lucandra的当前版本不存储来自1-N的文档,因此deleteDocument(int)不起作用
我所做的是索引所有文档中具有相同术语的
如何在web控制台中的密码查询中编写此示例
hits = movies.query( "title", new QueryContext( "*" ).sort( "title" )
这就是我到目前为止得到的。如何添加排序
start a = node:movies("title:*") return a
你不能依赖lucene的订单。如果您进行匹配或聚合,Cypher可能不尊重它
相反,我建议您使用Cypher的排序:
start a=node:movies(“title:*”)通过a返回
我是lucene的新手,所以我不知道这是否可行,但我有一个索引,我想得到索引子集中短语的总数(子集由过滤器定义)。
我可以将FilteredQuery与我的筛选器和短语查询一起使用来搜索短语,这样我就可以计算出现此短语的文档数,但我似乎也找不到一种方法来计算每个文档的匹配数。您可以这样做,有关详细信息,请参阅
例如,您可以查看此功能的代码
我复制了下面短语搜索的相关代码
这是收藏家
private static class CountingCollector extends Collector
我有一个包含150万个文档的RAMDirectory,我正在使用PrefixQuery搜索单个字段。当搜索文本长度为3个或更多字符时,搜索速度非常快,不到20毫秒。但是当搜索文本的长度小于3个字符时,搜索甚至可能需要整整1秒
因为这是一个自动完成的功能,用户从一个字符开始(而且有些结果的长度确实是1个字符),所以我不能限制搜索文本的长度
代码大致如下:
var symbolCodeTopDocs = searcher.Search(new PrefixQuery(new Term("Symbol
lengthNorm是计算字段范数的三个因素之一。
在弹性搜索中,可以使用“省略\u规范”:true关闭场法线
不幸的是,这导致在查询此类字段时没有应用索引时间提升
是否有办法严格关闭长度标准的计算?
我需要提高字段级别的索引时间,但我真的需要字段的长度不重要
正如您所说,lengthNorm和field level boosting都存储在norm中。所以不,你不能没有一个
但实际上,在索引时不需要字段提升。您可以在搜索时应用它,这样,当您以后想要调整提升级别时,您就有了更大的灵活性
不仅
您好,我在alfresco cms中存储了一些文件(pdf、html、doc),我的要求是使用alfresco cms中的元数据“内容类型”对这些文件进行分类,是否可以仅使用alfresco进行分类,或者我是否需要将任何其他爬虫(tika、nutch、lucene)与alfresco集成以获得这些文件。请给我建议一种方法该“内容类型”元数据基于文件名的扩展名,放在Alfresco(.pdf,.doc)中。扩展名无法识别的文件没有有效的内容类型
您只需在Alfresco中使用“规则”即可组织文件。
我按interval=“quarter”制作了一个日期柱状图。在我看来,“2003-07”季度有10个结果。问题是如何进行lucene查询/搜索以获取这些文档?要按日期搜索,我通常会执行以下操作:
myquery AND (dateField: 2003-07)
如果可以的话,我如何搜索“2003-07”季度内的所有文档(最好是人类可读的lucene)?问题提到了elasticsearch,因此我将在该上下文中回答(尽管问题主体仅说明“lucene查询”)
我将使用elasticsearch查
如何在单个字段下索引和搜索多个值
e、 g.假设我有一个字段处理器,它可能有i3、i5、i7或i3或i3、i5值。
现在想象一台笔记本电脑的数据如下:
数据1:
name= laptop name
price = laptop price
processor=core duo
name= laptop name
price = laptop price
processor=i3,i5
name= laptop name
price = laptop price
proces
对于某个模板的项目,我们的用户可以指示该项目应显示在列表的顶部
为此,我们在索引“ShowOnTop”中添加了一个字段
现在,当搜索此模板的项目(以构建列表页面)时,我们希望这些“ShowOnTop”项目能够有效地返回到其他项目之上
但是,此字段不应影响其他网站搜索(常规搜索)
我们认为,通过对这些文档应用查询时间提升,这是可能的。但是,我们如何才能做到这一点呢?最好的方法可能是基于该字段应用排序,大致如下:
Sort sort = new Sort(new SortField("ShowOnT
我已经在我的服务器上运行了solr 4.0。除了停止词外,一切正常
这是我的文本字段
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
此列表中的任何单词都将以solr形式返回结果
以下是调试的一部分:
<lst name="responseHeader">
<int name="status">0</int>
searchQuery:“A/S堆栈”
我使用:
`query = parser.Parse(searchQuery.Trim());
query = parser.Parse(searchQuery.Trim());
query = parser.Parse(QueryParser.Escape(searchQuery.Trim()));
query = parser.Parse(QueryParser.Escape(searchQuery.Trim()));
结果:0条记录
////
我是luene的新手,我想将索引文件保存到数据库中,但我有这个例外,我不会更改max_allowed_数据包,但我想限制文件的大小
Exception in thread "Lucene Merge Thread #0" org.apache.lucene.index.MergePolicy$MergeException: org.apache.lucene.store.jdbc.JdbcStoreException: Failed to execute sql [insert into sea
我在一些文档上创建了一个Lucene索引,并将该索引存储在一个文件夹中
现在我想像这样更新这个索引
1-从Lucene索引中删除文档子集
2-向Lucene索引添加更多文档
这怎么可能?我必须再次在完整的文档上创建Lucene索引吗
谢谢我不知道您使用的是哪个版本的Lucene,但是假设您使用的是Java和4.0+版本,您应该以模式打开IndexWriter,在中进行配置。如果您使用的是.net,那么应该有一个紧密的对应项。如何从Lucene索引中删除文档子集?Lucene/Java的最新版本有
我必须使用elasticsearch在数据库中搜索两个字段,我应该得到的总点击量等于单个字段搜索的总和。我在端口9200上这样做了,并且工作正常。如何为此编写必须匹配的代码
http://localhost:9200/indexname/typename/_search?q=Both:Yes++Type:Comm
两者都是一个字段,Comm是另一个字段
谢谢您需要使用AND查询
GET hilden1/type1/_search
{
"query": {
"filtered"
在lucene
如何找到具有相同ID的两个文档
我们如何找到两个名称相似的文档(其中一个名称有拼写错误)
如果您的文档有任何类似于hashvalue的字段,则可以在搜索时使用重复筛选器并避免重复文档。如果您的文档有任何类似于hashvalue的字段,则可以在搜索时使用重复筛选器并避免重复文档
我想在ElasticSearch上构建一个搜索,但我遇到了以下问题:
查询:
H和M
H&M
H&M
需要查找具有此变量值的文档:
H&M
如何处理 您应该使用它并将其附加到分析器中
例如,这将是最小的复制:
POST /hm
{
"index": {
"analysis": {
"char_filter": {
"my_pattern": {
"type": "pattern_replace",
"patt
当我在lucene中搜索荷兰语单词bieten时,它们之间的区别是:bieten,“bieten”,“*bieten*”和*bieten*当使用DutchAnalyzer并允许前导通配符时
因为据我所知,在解析器语法中,引号只是用来处理空格的,所有的单词总是像通配符一样进行搜索
我问这个问题的原因是因为我发现,通过使用DutchAnalyzer,在输入索引之前,所有单词的复数都会被去除。在我的例子中,这意味着biet存储在索引中,而不是bieten。
当使用bieten或“bieten”或“bi
标签:elasticsearch Lucene
storage
在Lucene中,我想存储完整的文档,它只是存储而不是分析。我想做的是类似弹性搜索中的源代码。
但我不知道Lucene中存储此类数据的最佳数据类型是什么。
我应该在Lucene中使用什么字段类型来存储此类数据。应该是StringField还是别的什么?
我认为elasticsearch将源存储为十六进制数据。不过我不确定。
哪种数据类型占用的空间更少,检索速度也足够快?根据文档的这一部分,似乎Lucene将每种数据类型都视为:
不透明字节
这可以理想地传达这样一个信息,即你拥有的字段类型并不重要
如何通过SearchPortlet添加可搜索的存储库内容。我已将Google drive与Liferay集成。可以查看和编辑google drive中的所有文档。任何人都可以告诉我们如何在liferay中集成任何要索引的外部存储库并与search portlet集成的分步指南吗?您可以从google drive为文档创建索引器
Liferay的搜索和索引功能由Apache提供
Lucene,一个基于Java的搜索库。实现搜索和索引
对于实体的功能,您需要遵循以下三个步骤:
在portlet项目中
我试图在自定义筛选器中多次迭代令牌流
@Override
public boolean incrementToken() throws IOException {
if (first) {
while (input.incrementToken()) {
System.out.println(
"[" + input.getAttribute(CharTermAttribute.class).t
当索引只有一种类型时,稀疏字段应用了多少?我正在制作一个索引,索引中有大量相同类型的小文档,还有许多字段。虽然所有文档的类型相同,但只填充了一小部分字段。根据这篇文章,当帖子稀少时,人们会担心。这似乎表明,尽管这可能只是一个问题,如果该指数有许多类型。如果索引只有一种类型怎么办
存在于一种类型中的字段也将占用
此字段不存在的类型的文档。这是一个将军
Lucene指数的问题:他们不喜欢稀疏性。稀疏帖子
列表无法有效压缩,因为它们之间的增量很高
连续的比赛。而文档值的问题更为严重:对于
由于速度原因
我有一个包含人名的SQL表,我想找出我用Lucene索引的文档中的名字。
除了单独搜索每个名称之外,还有其他方法可以找到吗?我想,您可以通过使用通配符查询并只搜索*字符串来实现这一点
在上面的代码中,AppConstants.NAME是名称字段名,它假定读卡器和搜索器已经初始化
您可以根据表中的行数指定所需的任意数目,以代替命中限制20
请做好准备,使用通配符进行搜索将非常缓慢,并且在很大程度上取决于您的索引大小
当问关于Lucene的问题时,请始终指定Lucene版本和API技术-Java或.
我有一个关于分析文件的问题。
使用ApacheTika,可以获取不同类型的不同文件的内容和元数据
是否也可以使用Tika获取文件的关键字(即词干),或者我是否仍然需要Lucene?我不知道这是否可行,但我建议使用Lucene进行所有关键字分析。我个人的理由:
Tika的主要目标是从文件中提取信息
Lucenes定义了如何分析和索引数据。数据的分析方式对lucene索引在搜索中的表现有很大影响(查找您希望找到的内容)
这是一种分离的关注点,Tika只是提取,Lucene关心与搜索相关的事情
蒂卡
我有一个产品数据库(用于足球),其中包含大约5k种产品。用于产品搜索的Lucene索引当前包含名称、类别、颜色和数字(ArtNo和EANs)
问题的相关表格示例:
| Name | Color |
--------------------------------------------
| Nike Training football | red black |
| Nike Match football | blac
我正在使用5.1中的~16k文档的多个索引进行测试。在一个索引中,我显式禁用了_source。我预计索引的大小会比它的同级索引小,但实际上,索引的大小略有增加
发件人:GET source\u true,source\u false/\u stats/docs,store
"indices": {
"source_true": {
"primaries": {
"docs": {
"count": 16079,
"deleted": 0
},
下面的弹性查询没有返回我的应用程序的任何结果
"query" : {
"bool" : {
"must" : [
{
"simple_query_string" : {
"query" : "IN-123456",
"fields" : [
"field1.auto^1.0",
"field2.auto^1.0"
],
"flag
我想通过lucene查询获得kibana或grafana中两个日志之间的时间差。我进行了以下查询,但我不知道如何获得不同日志中两个时间戳之间的时间差
查询:
kubernetes.labels.app:“订户解析器”和@timestamp:[2021-05-24T23:55:00至2021-05-24T23:59:00]和(日志:“文件处理完成”或日志:“文件处理已开始”)
其中2021-05-24T23:55:00是“文件处理”的第一个日志的@timestamp,2021-05-24T23:5
谁能给我推荐一些关于Lucene的好教程吗。我读的是《行动中的Lucene》,但它似乎是当前Lucene的旧版本。大多数方法都已弃用
从哪里开始?我在谷歌上搜索了一下
谢谢,
Kapil第二版《Lucene in Action》以电子格式提供确实有一些变化,但它们并不像看上去那么重要。我能想到的最根本的变化是IndexSearcher.search()方法的api发生了变化,但要使代码适应新的用法并不难
通常,旧方法仍然存在,但被标记为已弃用。这是一件好事,因为指定了应该使用的内容
《吕森在行动
我在和Lucene玩游戏,注意到使用连字符(例如“半决赛”)会导致索引中出现两个单词(“半决赛”和“决赛”。如果用户在一个单词中搜索“半决赛”,这应该如何匹配
编辑:实际上我只是在玩StandardTokenizer类,也许这就是为什么?我缺少一个过滤器吗
谢谢
(编辑)
我的代码如下所示:
StandardAnalyzer sa = new StandardAnalyzer();
TokenStream ts = sa.TokenStream("
我有个问题。我不小心在索引中放入了一些垃圾,如下所示:
[
""
]
这是空格,换行符,左括号,换行符,空格,空格,引号,引号,换行符,右括号
我用Solr.StrField来表示这个字段。我尝试了转义字符、url编码等各种可能的组合,试图查询包含此字段的文档,但似乎没有任何效果
有人知道我如何查询这样的字符串吗?首先对字符进行转义,然后对查询字符串进行编码。
“\\n[\n\\\”\n]”应进行编码。首先从浏览器中尝试,不进行编码。首先对字符进行转义,然后对查询字符串进行编码。
“\\n
我目前正在为其中一个项目使用JavaLucene,并获得了良好的性能。我正在为lucene寻找C/C++选项,并在sourceforge上遇到了CLucene
但我想检查CLucene是否像JavaLucene一样稳定可靠,是否拥有JavaLucene所支持的所有功能,以及它是否获得apache许可和积极支持?如果是,为什么我没有在ApacheLucene站点上下载CLucene的选项(但在ApacheLucene站点上我有Lucene.net选项)
希望了解有关企业软件使用CLucene的更多
我正在用Lucene创建一个web应用程序,我需要它来实现分页。我在这里看到了关于在收集器上使用偏移量的不同示例。然而,这些似乎是旧的Lucene 3.5(或3.6不记得是哪个)添加了这个,我相信。我已经看到了索引搜索器方法searchAfter。但是,它要求您传递最后一个ScoreDoc。因为这是一个web应用程序,所以我无法将最后一个结果(作为ScoreDoc对象)传递给下一个请求。所以,我的问题是,这通常是如何做到的
我真正想到的唯一方法是在构建索引时向索引中添加一个唯一的键。然后,在尝试
我正在使用Lucene 4.0进行一些复杂的查询,我的信息检索理论好友告诉我,在任何可以使用过滤器而不是查询的地方,为了提高性能,我都应该这样做。因此,我决定将查询中一个特别复杂的组件转换成一个过滤器。这是相对简单的,因为存在与BooleanQuery和numeriRangeQuery等价的Filter,但似乎没有与TermQuery等价的TermFilter。有一个FieldValueFilter,但它似乎只根据给定字段的存在进行过滤,而不是该字段中的特定值
我应该用什么过滤器来过滤呢?我相信
如何向elasticsearch POST结果中添加条件查询,以便根据点击数数组删除某些结果
例如:
如果我有以下文件
{id:1,状态:1}{id:1,状态:2}{id:2,状态:1}{id:2,
状态:2}{id:2,状态:3}
我想返回每个状态字段中最高的字段:
{id:1,状态:2}{id:2,状态:3}
您可以对此进行聚合:
{
"size": 0,
"aggs": {
"IDs": {
"terms": {
"field": "id",
标签:elasticsearch Lucene
sharding
我在elasticsearch中有以下设置
[root elasticsearch]$ curl localhost:9200/_cluster/health?pretty
{
"cluster_name" : "iresbi",
"status" : "red",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 0,
"active_shards"
上一页 1 2 ...
6 7 8 9 10 11 12 ...
下一页 最后一页 共 78 页