如何在Elasticsearch中将一个单词映射到另一个单词?假设我有以下数据文档
{
"carName" : "Porche"
"review": " this car is so awesome"
}
现在当我搜索到good/fantastic等时,它应该会映射到“棒极了”。有没有办法在elasticsearch中做到这一点?
我正在看tokenizer在ElasticSearch6.8中。我知道它定义了在构建索引时我们如何将文本标记为单词。作为一个例子,它将转换为“快速棕色狐狸!”将文本转换为术语[Quick, brown, fox!]。如果我在Elasticsearch中有一个包含文本"Quick brown fox!"的字段,它将在索引中被分解为三个单词。但是,如果我发送一个查询文本"Quick brown fox!",那么tokenizer也可以用于该查询参数吗?
假设我有一个像'message-ID: 1394.00 This is Henry.Lin‘这样的字符串,我想使用elasticsearch来查找包含'.’的所有短语或单词。在本例中,1394.00和Henry.Lin是我要查找的单词。然而,当我用标准分析器索引我的文档时,它就不能工作了。我知道标准分析器会转义这样的字符。因此,我将分析器更改为ngram。不幸的是,它仍然不起作用。如果有人能帮我,那就太好了。
我正在尝试将全文搜索逻辑从MySQL转移到Elasticsearch。在MySQL中,要查找包含单词“女人”的所有行,我只需这样写
SELECT b.code
FROM BIBLE b
WHERE ((b.DISPLAY_NAME LIKE '%woman%')
OR (b.BRAND LIKE '%woman%')
OR (b.DESCRIPTION LIKE '%woman%'));
在elasticsearch上,我尝试了类似的东西
curl -X GET "localhost:9200/bible/_search"
我有一个关于.slice()方法的问题: 使用slice方法返回单词"bananas“。 var txt = "I can eat bananas all day";
var x = txt.slice(10, 17); //This doesn't make sense...why 10 and 17? 那么:他们在计算句子中的字母吗?因为“bananas”这个单词的字母“b”在array...so中是第7位,它怎么会是10位呢?
我现在的理解-
Elasticsearch在第一次接收JSON数据集时创建映射索引。
不能更改此映射,但可以重新映射数据集。
问题-
忘了重新映射吧。有没有办法告诉他们默认情况下-
"Consider everything that is not a date to be of string type"
而且,如果我这样做的话,我会失去更多吗?
更新-
我添加了包含以下内容的文件- config/mappings/_default/mapping.json -
{
"dynamic_templates": [
{
我的文档中有3个JSON键值对,我将其插入elasticsearch并使用key 4可视化。3个JSON键是NT、XT和YT。对于这三个键,这些值通常是100到1000之间的整数。一些典型的值是543、328和753。当我在Kibana4中可视化这些键时,我会得到上面三个键中每个键的警告。
This is an analyzed string field.Analyzed string fields are highly unique and can use a lot of memory to visualize
为了解决上述问题,我使用下面的shell脚本为包含这些键的弹性搜索中的docu
我尝试了一些步骤,让单词在第一个字母中自动变成大写字母。我曾经在VCL上使用它,它工作得很好,但为什么在移动应用程序上它不能正常工作。我使用此代码,但在edit2中,结果是我丢失了在edit1中输入的第一个字母和单词的开头,即使它以大写字母开头。也许有人能帮我。非常感谢
var i, j : integer;
s, edt2 : string;
Procedure
j := length(edt1.Text);
s := '';
for i := 2 to j do
我正在使用elasticsearch-rails和elasticsearch-model gem在我的rails应用程序中搜索单词。
这是我想要搜索的模型
require 'elasticsearch/model'
class Article < ActiveRecord::Base
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
settings index: { number_of_shards: 1 } do
ma
我有一个文本字符串和一个需要在字符串中查找的特定单词。一旦我在字符串中找到该单词的下一个匹配项,我就需要以某种方式找到紧跟在该单词后面的字符。我尝试使用scanner,但它没有包含nextChar()方法,这类方法可以满足我想要做的事情。我还能尝试什么呢?这是我的代码,但它不能完成我想让它做的事情。
public void storeChar(String str) //used to get the char after the seed and store it in the arraylist of chars
{
Scanner sc = new Scanner(str);